summaryrefslogtreecommitdiffstats
path: root/crypto/bn
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2004-08-29 16:36:05 +0000
committerAndy Polyakov <appro@openssl.org>2004-08-29 16:36:05 +0000
commit2b247cf81fbc320a313f952e2ea39cf63aa21010 (patch)
treed81b7181197eb2360ef8048ca9b488eff54b6e0f /crypto/bn
parent746fc2526ffc17d57a5fb87568d01400cbcf62fd (diff)
OPENSSL_ia32cap final touches. Note that OPENSSL_ia32cap is no longer a
symbol, but a macro expanded as (*(OPENSSL_ia32cap_loc())). The latter is the only one to be exported to application.
Diffstat (limited to 'crypto/bn')
-rw-r--r--crypto/bn/asm/bn-586.pl6
1 files changed, 4 insertions, 2 deletions
diff --git a/crypto/bn/asm/bn-586.pl b/crypto/bn/asm/bn-586.pl
index 0415015f65..26c2685a72 100644
--- a/crypto/bn/asm/bn-586.pl
+++ b/crypto/bn/asm/bn-586.pl
@@ -8,6 +8,8 @@ require "x86asm.pl";
$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");
&bn_sqr_words("bn_sqr_words");
@@ -22,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";
@@ -46,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"));