summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/perlasm/x86nasm.pl
diff options
context:
space:
mode:
authormarkus <>2003-05-12 02:18:40 +0000
committermarkus <>2003-05-12 02:18:40 +0000
commitd4fcd82bb7f6d603bd61e19a81ba97337b89dfca (patch)
treed52e3a0f1f08f65ad283027e560e17ed0d720462 /src/lib/libcrypto/perlasm/x86nasm.pl
parent582bbd139cd2afd58d10dc051c5b0b989b441074 (diff)
downloadopenbsd-d4fcd82bb7f6d603bd61e19a81ba97337b89dfca.tar.gz
openbsd-d4fcd82bb7f6d603bd61e19a81ba97337b89dfca.tar.bz2
openbsd-d4fcd82bb7f6d603bd61e19a81ba97337b89dfca.zip
merge 0.9.7b with local changes; crank majors for libssl/libcrypto
Diffstat (limited to 'src/lib/libcrypto/perlasm/x86nasm.pl')
-rw-r--r--src/lib/libcrypto/perlasm/x86nasm.pl15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/lib/libcrypto/perlasm/x86nasm.pl b/src/lib/libcrypto/perlasm/x86nasm.pl
index 519d8a5867..f30b7466d4 100644
--- a/src/lib/libcrypto/perlasm/x86nasm.pl
+++ b/src/lib/libcrypto/perlasm/x86nasm.pl
@@ -98,6 +98,8 @@ sub get_mem
98 $addr="_$addr"; 98 $addr="_$addr";
99 } 99 }
100 100
101 if ($addr =~ /^.+\-.+$/) { $addr="($addr)"; }
102
101 $reg1="$regs{$reg1}" if defined($regs{$reg1}); 103 $reg1="$regs{$reg1}" if defined($regs{$reg1});
102 $reg2="$regs{$reg2}" if defined($regs{$reg2}); 104 $reg2="$regs{$reg2}" if defined($regs{$reg2});
103 if (($addr ne "") && ($addr ne 0)) 105 if (($addr ne "") && ($addr ne 0))
@@ -117,6 +119,7 @@ sub get_mem
117 { 119 {
118 $ret.="$reg1$post]" 120 $ret.="$reg1$post]"
119 } 121 }
122 $ret =~ s/\+\]/]/; # in case $addr was the only argument
120 return($ret); 123 return($ret);
121 } 124 }
122 125
@@ -160,7 +163,7 @@ sub main'push { &out1("push",@_); $stack+=4; }
160sub main'pop { &out1("pop",@_); $stack-=4; } 163sub main'pop { &out1("pop",@_); $stack-=4; }
161sub main'bswap { &out1("bswap",@_); &using486(); } 164sub main'bswap { &out1("bswap",@_); &using486(); }
162sub main'not { &out1("not",@_); } 165sub main'not { &out1("not",@_); }
163sub main'call { &out1("call",'_'.$_[0]); } 166sub main'call { &out1("call",($_[0]=~/^\$L/?'':'_').$_[0]); }
164sub main'ret { &out0("ret"); } 167sub main'ret { &out0("ret"); }
165sub main'nop { &out0("nop"); } 168sub main'nop { &out0("nop"); }
166 169
@@ -322,7 +325,7 @@ sub main'set_label
322 { 325 {
323 if (!defined($label{$_[0]})) 326 if (!defined($label{$_[0]}))
324 { 327 {
325 $label{$_[0]}="${label}${_[0]}"; 328 $label{$_[0]}="\$${label}${_[0]}";
326 $label++; 329 $label++;
327 } 330 }
328 push(@out,"$label{$_[0]}:\n"); 331 push(@out,"$label{$_[0]}:\n");
@@ -340,3 +343,11 @@ sub out1p
340 343
341 push(@out,"\t$name\t ".&conv($p1)."\n"); 344 push(@out,"\t$name\t ".&conv($p1)."\n");
342 } 345 }
346
347sub main'picmeup
348 {
349 local($dst,$sym)=@_;
350 &main'lea($dst,&main'DWP($sym));
351 }
352
353sub main'blindpop { &out1("pop",@_); }