From: Andy Polyakov Date: Thu, 15 Dec 2011 22:20:26 +0000 (+0000) Subject: vpaes-x86.pl: revert previous commit and solve the problem through x86masm.pl [from... X-Git-Tag: OpenSSL_1_0_1-beta1~30 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=700384be8ef3177b1dc499299c388a4db97c671f;p=oweals%2Fopenssl.git vpaes-x86.pl: revert previous commit and solve the problem through x86masm.pl [from HEAD]. PR: 2657 --- 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 188b393c76..3af045396e 100644 --- a/crypto/perlasm/x86masm.pl +++ b/crypto/perlasm/x86masm.pl @@ -16,7 +16,9 @@ sub ::generic # fix hexadecimal constants for (@arg) { s/(?