Complete backport of i386 RC4 assembler module from HEAD.

This commit is contained in:
Andy Polyakov 2004-12-01 15:45:34 +00:00
parent 280e3bd2c9
commit fda344ece8
4 changed files with 7 additions and 2 deletions

View File

@ -124,4 +124,6 @@ BSDI - a.out with a very primative version of as.
EOF
}
sub main'align() {} # swallow align statements in 0.9.7 context
1;

View File

@ -160,6 +160,7 @@ sub main'not { &out1("not",@_); }
sub main'call { &out1("call",($_[0]=~/^\$L/?'':'_').$_[0]); }
sub main'ret { &out0("ret"); }
sub main'nop { &out0("nop"); }
sub main'movz { &out2("movzx",@_); }
sub out2
{

View File

@ -169,6 +169,7 @@ sub main'not { &out1("not",@_); }
sub main'call { &out1("call",($_[0]=~/^\$L/?'':'_').$_[0]); }
sub main'ret { &out0("ret"); }
sub main'nop { &out0("nop"); }
sub main'movz { &out2("movzx",@_); }
sub out2
{

View File

@ -137,7 +137,7 @@ sub main'shl { &out2("sall",@_); }
sub main'shr { &out2("shrl",@_); }
sub main'xor { &out2("xorl",@_); }
sub main'xorb { &out2("xorb",@_); }
sub main'add { &out2("addl",@_); }
sub main'add { &out2($_[0]=~/%[a-d][lh]/?"addb":"addl",@_); }
sub main'adc { &out2("adcl",@_); }
sub main'sub { &out2("subl",@_); }
sub main'rotl { &out2("roll",@_); }
@ -164,7 +164,7 @@ sub main'jc { &out1("jc",@_); }
sub main'jnc { &out1("jnc",@_); }
sub main'jno { &out1("jno",@_); }
sub main'dec { &out1("decl",@_); }
sub main'inc { &out1("incl",@_); }
sub main'inc { &out1($_[0]=~/%[a-d][hl]/?"incb":"incl",@_); }
sub main'push { &out1("pushl",@_); $stack+=4; }
sub main'pop { &out1("popl",@_); $stack-=4; }
sub main'pushf { &out0("pushf"); $stack+=4; }
@ -173,6 +173,7 @@ sub main'not { &out1("notl",@_); }
sub main'call { &out1("call",($_[0]=~/^\.L/?'':$under).$_[0]); }
sub main'ret { &out0("ret"); }
sub main'nop { &out0("nop"); }
sub main'movz { &out2("movzb",@_); }
# The bswapl instruction is new for the 486. Emulate if i386.
sub main'bswap