From 0e1467a64c2368d267b0eebb4190f95a7196c9c9 Mon Sep 17 00:00:00 2001 From: Andy Polyakov Date: Thu, 15 Dec 2011 22:20:05 +0000 Subject: vpaes-x86.pl: revert previous commit and solve the problem through x86masm.pl. PR: 2657 --- crypto/aes/asm/vpaes-x86.pl | 10 +++++----- crypto/perlasm/x86masm.pl | 4 +++- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/crypto/aes/asm/vpaes-x86.pl b/crypto/aes/asm/vpaes-x86.pl index 30446e60db..84a6f6d336 100644 --- a/crypto/aes/asm/vpaes-x86.pl +++ b/crypto/aes/asm/vpaes-x86.pl @@ -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); diff --git a/crypto/perlasm/x86masm.pl b/crypto/perlasm/x86masm.pl index ee446de5c1..328ca2e23f 100644 --- a/crypto/perlasm/x86masm.pl +++ b/crypto/perlasm/x86masm.pl @@ -16,7 +16,9 @@ sub ::generic # fix hexadecimal constants for (@arg) { s/(?