diff options
Diffstat (limited to 'src/lib/libcrypto/perlasm')
| -rw-r--r-- | src/lib/libcrypto/perlasm/x86asm.pl | 2 | ||||
| -rw-r--r-- | src/lib/libcrypto/perlasm/x86ms.pl | 1 | ||||
| -rw-r--r-- | src/lib/libcrypto/perlasm/x86nasm.pl | 8 | ||||
| -rw-r--r-- | src/lib/libcrypto/perlasm/x86unix.pl | 7 | 
4 files changed, 14 insertions, 4 deletions
| diff --git a/src/lib/libcrypto/perlasm/x86asm.pl b/src/lib/libcrypto/perlasm/x86asm.pl index 7c675e3ced..60233f80e8 100644 --- a/src/lib/libcrypto/perlasm/x86asm.pl +++ b/src/lib/libcrypto/perlasm/x86asm.pl | |||
| @@ -130,4 +130,6 @@ BSDI - a.out with a very primative version of as. | |||
| 130 | EOF | 130 | EOF | 
| 131 | } | 131 | } | 
| 132 | 132 | ||
| 133 | sub main'align() {} # swallow align statements in 0.9.7 context | ||
| 134 | |||
| 133 | 1; | 135 | 1; | 
| diff --git a/src/lib/libcrypto/perlasm/x86ms.pl b/src/lib/libcrypto/perlasm/x86ms.pl index fbb4afb9bd..b6bd744057 100644 --- a/src/lib/libcrypto/perlasm/x86ms.pl +++ b/src/lib/libcrypto/perlasm/x86ms.pl | |||
| @@ -160,6 +160,7 @@ sub main'not { &out1("not",@_); } | |||
| 160 | sub main'call { &out1("call",($_[0]=~/^\$L/?'':'_').$_[0]); } | 160 | sub main'call { &out1("call",($_[0]=~/^\$L/?'':'_').$_[0]); } | 
| 161 | sub main'ret { &out0("ret"); } | 161 | sub main'ret { &out0("ret"); } | 
| 162 | sub main'nop { &out0("nop"); } | 162 | sub main'nop { &out0("nop"); } | 
| 163 | sub main'movz { &out2("movzx",@_); } | ||
| 163 | 164 | ||
| 164 | sub out2 | 165 | sub out2 | 
| 165 | { | 166 | { | 
| diff --git a/src/lib/libcrypto/perlasm/x86nasm.pl b/src/lib/libcrypto/perlasm/x86nasm.pl index 30346af4ea..5009acb4b3 100644 --- a/src/lib/libcrypto/perlasm/x86nasm.pl +++ b/src/lib/libcrypto/perlasm/x86nasm.pl | |||
| @@ -86,7 +86,7 @@ sub get_mem | |||
| 86 | { | 86 | { | 
| 87 | my($size,$addr,$reg1,$reg2,$idx)=@_; | 87 | my($size,$addr,$reg1,$reg2,$idx)=@_; | 
| 88 | my($t,$post); | 88 | my($t,$post); | 
| 89 | my($ret)="["; | 89 | my($ret)="$size ["; | 
| 90 | $addr =~ s/^\s+//; | 90 | $addr =~ s/^\s+//; | 
| 91 | if ($addr =~ /^(.+)\+(.+)$/) | 91 | if ($addr =~ /^(.+)\+(.+)$/) | 
| 92 | { | 92 | { | 
| @@ -169,6 +169,7 @@ sub main'not { &out1("not",@_); } | |||
| 169 | sub main'call { &out1("call",($_[0]=~/^\$L/?'':'_').$_[0]); } | 169 | sub main'call { &out1("call",($_[0]=~/^\$L/?'':'_').$_[0]); } | 
| 170 | sub main'ret { &out0("ret"); } | 170 | sub main'ret { &out0("ret"); } | 
| 171 | sub main'nop { &out0("nop"); } | 171 | sub main'nop { &out0("nop"); } | 
| 172 | sub main'movz { &out2("movzx",@_); } | ||
| 172 | 173 | ||
| 173 | sub out2 | 174 | sub out2 | 
| 174 | { | 175 | { | 
| @@ -176,6 +177,11 @@ sub out2 | |||
| 176 | my($l,$t); | 177 | my($l,$t); | 
| 177 | 178 | ||
| 178 | push(@out,"\t$name\t"); | 179 | push(@out,"\t$name\t"); | 
| 180 | if ($name eq "lea") | ||
| 181 | { | ||
| 182 | $p1 =~ s/^[^\[]*\[/\[/; | ||
| 183 | $p2 =~ s/^[^\[]*\[/\[/; | ||
| 184 | } | ||
| 179 | $t=&conv($p1).","; | 185 | $t=&conv($p1).","; | 
| 180 | $l=length($t); | 186 | $l=length($t); | 
| 181 | push(@out,$t); | 187 | push(@out,$t); | 
| diff --git a/src/lib/libcrypto/perlasm/x86unix.pl b/src/lib/libcrypto/perlasm/x86unix.pl index 53ad5f4927..9717d18557 100644 --- a/src/lib/libcrypto/perlasm/x86unix.pl +++ b/src/lib/libcrypto/perlasm/x86unix.pl | |||
| @@ -143,12 +143,12 @@ sub main'shl { &out2("sall",@_); } | |||
| 143 | sub main'shr { &out2("shrl",@_); } | 143 | sub main'shr { &out2("shrl",@_); } | 
| 144 | sub main'xor { &out2("xorl",@_); } | 144 | sub main'xor { &out2("xorl",@_); } | 
| 145 | sub main'xorb { &out2("xorb",@_); } | 145 | sub main'xorb { &out2("xorb",@_); } | 
| 146 | sub main'add { &out2("addl",@_); } | 146 | sub main'add { &out2($_[0]=~/%[a-d][lh]/?"addb":"addl",@_); } | 
| 147 | sub main'adc { &out2("adcl",@_); } | 147 | sub main'adc { &out2("adcl",@_); } | 
| 148 | sub main'sub { &out2("subl",@_); } | 148 | sub main'sub { &out2("subl",@_); } | 
| 149 | sub main'rotl { &out2("roll",@_); } | 149 | sub main'rotl { &out2("roll",@_); } | 
| 150 | sub main'rotr { &out2("rorl",@_); } | 150 | sub main'rotr { &out2("rorl",@_); } | 
| 151 | sub main'exch { &out2("xchg",@_); } | 151 | sub main'exch { &out2($_[0]=~/%[a-d][lh]/?"xchgb":"xchgl",@_); } | 
| 152 | sub main'cmp { &out2("cmpl",@_); } | 152 | sub main'cmp { &out2("cmpl",@_); } | 
| 153 | sub main'lea { &out2("leal",@_); } | 153 | sub main'lea { &out2("leal",@_); } | 
| 154 | sub main'mul { &out1("mull",@_); } | 154 | sub main'mul { &out1("mull",@_); } | 
| @@ -170,7 +170,7 @@ sub main'jc { &out1("jc",@_); } | |||
| 170 | sub main'jnc { &out1("jnc",@_); } | 170 | sub main'jnc { &out1("jnc",@_); } | 
| 171 | sub main'jno { &out1("jno",@_); } | 171 | sub main'jno { &out1("jno",@_); } | 
| 172 | sub main'dec { &out1("decl",@_); } | 172 | sub main'dec { &out1("decl",@_); } | 
| 173 | sub main'inc { &out1("incl",@_); } | 173 | sub main'inc { &out1($_[0]=~/%[a-d][hl]/?"incb":"incl",@_); } | 
| 174 | sub main'push { &out1("pushl",@_); $stack+=4; } | 174 | sub main'push { &out1("pushl",@_); $stack+=4; } | 
| 175 | sub main'pop { &out1("popl",@_); $stack-=4; } | 175 | sub main'pop { &out1("popl",@_); $stack-=4; } | 
| 176 | sub main'pushf { &out0("pushf"); $stack+=4; } | 176 | sub main'pushf { &out0("pushf"); $stack+=4; } | 
| @@ -179,6 +179,7 @@ sub main'not { &out1("notl",@_); } | |||
| 179 | sub main'call { &out1("call",($_[0]=~/^\.L/?'':$under).$_[0]); } | 179 | sub main'call { &out1("call",($_[0]=~/^\.L/?'':$under).$_[0]); } | 
| 180 | sub main'ret { &out0("ret"); } | 180 | sub main'ret { &out0("ret"); } | 
| 181 | sub main'nop { &out0("nop"); } | 181 | sub main'nop { &out0("nop"); } | 
| 182 | sub main'movz { &out2("movzbl",@_); } | ||
| 182 | 183 | ||
| 183 | # The bswapl instruction is new for the 486. Emulate if i386. | 184 | # The bswapl instruction is new for the 486. Emulate if i386. | 
| 184 | sub main'bswap | 185 | sub main'bswap | 
