summaryrefslogtreecommitdiff
path: root/crypto/bn/asm/bn-586.pl
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/bn/asm/bn-586.pl')
-rw-r--r--crypto/bn/asm/bn-586.pl9
1 files changed, 6 insertions, 3 deletions
diff --git a/crypto/bn/asm/bn-586.pl b/crypto/bn/asm/bn-586.pl
index 9a7c64c464..26c2685a72 100644
--- a/crypto/bn/asm/bn-586.pl
+++ b/crypto/bn/asm/bn-586.pl
@@ -5,7 +5,10 @@ require "x86asm.pl";
&asm_init($ARGV[0],$0);
-$sse2=0; # SSE2 is temporarily disabled...
+$sse2=0;
+for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); }
+
+&external_label("OPENSSL_ia32cap_P") if ($sse2);
&bn_mul_add_words("bn_mul_add_words");
&bn_mul_words("bn_mul_words");
@@ -21,7 +24,7 @@ sub bn_mul_add_words
{
local($name)=@_;
- &function_begin($name,"");
+ &function_begin($name,$sse2?"EXTRN\t_OPENSSL_ia32cap_P:DWORD":"");
&comment("");
$Low="eax";
@@ -45,7 +48,7 @@ sub bn_mul_add_words
&jz(&label("maw_finish"));
if ($sse2) {
- &picmeup("eax","OPENSSL_ia32cap");
+ &picmeup("eax","OPENSSL_ia32cap_P");
&bt(&DWP(0,"eax"),26);
&jnc(&label("maw_loop"));