des-596.pl update: short-circuit reference to DES_SPtrans.
authorAndy Polyakov <appro@openssl.org>
Tue, 15 Jul 2008 13:24:16 +0000 (13:24 +0000)
committerAndy Polyakov <appro@openssl.org>
Tue, 15 Jul 2008 13:24:16 +0000 (13:24 +0000)
crypto/des/asm/des-586.pl

index 32282bd5fca080e5713715bad704cc5f1d7d353b..5b5f39cebd13cacd626241867a0d1eccd1463865 100644 (file)
@@ -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);