vpaes-x86.pl: revert previous commit and solve the problem through x86masm.pl [from HEAD].

PR: 2657
This commit is contained in:
Andy Polyakov 2011-12-15 22:20:26 +00:00
parent b8a22c40e0
commit 700384be8e
2 changed files with 8 additions and 6 deletions

View file

@ -762,7 +762,7 @@ $k_dsbo=0x2c0; # decryption sbox final output
&mov ($magic,0x30);
&mov ($out,0);
&mov ($const,&label("_vpaes_consts")."+0x30-".&label("pic_point"));
&lea ($const,&DWP(&label("_vpaes_consts")."+0x30-".&label("pic_point")));
&call ("_vpaes_schedule_core");
&set_label("pic_point");
@ -792,7 +792,7 @@ $k_dsbo=0x2c0; # decryption sbox final output
&and ($magic,32);
&xor ($magic,32); # nbist==192?0:32;
&mov ($const,&label("_vpaes_consts")."+0x30-".&label("pic_point"));
&lea ($const,&DWP(&label("_vpaes_consts")."+0x30-".&label("pic_point")));
&call ("_vpaes_schedule_core");
&set_label("pic_point");
@ -801,7 +801,7 @@ $k_dsbo=0x2c0; # decryption sbox final output
&function_end("${PREFIX}_set_decrypt_key");
&function_begin("${PREFIX}_encrypt");
&mov ($const,&label("_vpaes_consts")."+0x30-".&label("pic_point"));
&lea ($const,&DWP(&label("_vpaes_consts")."+0x30-".&label("pic_point")));
&call ("_vpaes_preheat");
&set_label("pic_point");
&mov ($inp,&wparam(0)); # inp
@ -820,7 +820,7 @@ $k_dsbo=0x2c0; # decryption sbox final output
&function_end("${PREFIX}_encrypt");
&function_begin("${PREFIX}_decrypt");
&mov ($const,&label("_vpaes_consts")."+0x30-".&label("pic_point"));
&lea ($const,&DWP(&label("_vpaes_consts")."+0x30-".&label("pic_point")));
&call ("_vpaes_preheat");
&set_label("pic_point");
&mov ($inp,&wparam(0)); # inp
@ -858,7 +858,7 @@ $k_dsbo=0x2c0; # decryption sbox final output
&mov (&DWP(8,"esp"),$const); # save ivp
&mov ($out,$round); # $out works as $len
&mov ($const,&label("_vpaes_consts")."+0x30-".&label("pic_point"));
&lea ($const,&DWP(&label("_vpaes_consts")."+0x30-".&label("pic_point")));
&call ("_vpaes_preheat");
&set_label("pic_point");
&cmp ($magic,0);

View file

@ -16,7 +16,9 @@ sub ::generic
# fix hexadecimal constants
for (@arg) { s/(?<![\w\$\.])0x([0-9a-f]+)/0$1h/oi; }
if ($opcode !~ /movq/)
if ($opcode =~ /lea/ && @arg[1] =~ s/.*PTR\s+([^\[]+)$/$1/) # no []
{ $opcode="mov"; }
elsif ($opcode !~ /movq/)
{ # fix xmm references
$arg[0] =~ s/\b[A-Z]+WORD\s+PTR/XMMWORD PTR/i if ($arg[1]=~/\bxmm[0-7]\b/i);
$arg[1] =~ s/\b[A-Z]+WORD\s+PTR/XMMWORD PTR/i if ($arg[0]=~/\bxmm[0-7]\b/i);