diff --git a/crypto/des/asm/des-586.pl b/crypto/des/asm/des-586.pl index 32282bd5fca080e5713715bad704cc5f1d7d353b..5b5f39cebd13cacd626241867a0d1eccd1463865 100644 --- a/crypto/des/asm/des-586.pl +++ b/crypto/des/asm/des-586.pl @@ -24,6 +24,8 @@ $small_footprint=1 if (grep(/\-DOPENSSL_SMALL_FOOTPRINT/,@ARGV)); # one can discuss setting this variable to 1 unconditionally, as # the folded loop is only 3% slower than unrolled, but >7 times smaller +&public_label("DES_SPtrans"); + &DES_encrypt_internal(); &DES_decrypt_internal(); &DES_encrypt("DES_encrypt1",1); @@ -153,7 +155,10 @@ sub DES_encrypt } # PIC-ification:-) - &picmeup($trans,"DES_SPtrans"); + &call (&label("pic_point")); + &set_label("pic_point"); + &blindpop($trans); + &lea ($trans,&DWP(&label("DES_SPtrans")."-".&label("pic_point"),$trans)); &mov( "ecx", &wparam(1) ); @@ -309,7 +314,6 @@ sub FP_new sub DES_SPtrans { - &public_label("DES_SPtrans"); &set_label("DES_SPtrans",64); &data_word(0x02080800, 0x00080000, 0x02000002, 0x02080802); &data_word(0x02000000, 0x00080802, 0x00080002, 0x02000002);