summaryrefslogtreecommitdiffstats
path: root/crypto/perlasm
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2014-02-27 14:22:13 +0100
committerAndy Polyakov <appro@openssl.org>2014-02-27 14:22:13 +0100
commitce876d8316409542283b356d331f90e1a1dfb853 (patch)
treeb7ab4e0e5ff2207792f59b338eb516bb3a75def1 /crypto/perlasm
parentf861b1d4335d4017953938160c7e4e0df9af5a7b (diff)
perlasm/x86gas.pl: limit special OPENSSL_ia32cap_P treatment to ELF.
Diffstat (limited to 'crypto/perlasm')
-rw-r--r--crypto/perlasm/x86gas.pl6
1 files changed, 3 insertions, 3 deletions
diff --git a/crypto/perlasm/x86gas.pl b/crypto/perlasm/x86gas.pl
index 5c2498118f..63b2301fd1 100644
--- a/crypto/perlasm/x86gas.pl
+++ b/crypto/perlasm/x86gas.pl
@@ -183,9 +183,7 @@ sub ::align
sub ::picmeup
{ my($dst,$sym,$base,$reflabel)=@_;
- if (defined($base) && $sym eq "OPENSSL_ia32cap_P" && !$::macosx)
- { &::lea($dst,&::DWP("$sym-$reflabel",$base)); }
- elsif (($::pic && ($::elf || $::aout)) || $::macosx)
+ if (($::pic && ($::elf || $::aout)) || $::macosx)
{ if (!defined($base))
{ &::call(&::label("PIC_me_up"));
&::set_label("PIC_me_up");
@@ -198,6 +196,8 @@ sub ::picmeup
&::mov($dst,&::DWP("$indirect-$reflabel",$base));
$non_lazy_ptr{"$nmdecor$sym"}=$indirect;
}
+ elsif ($sym eq "OPENSSL_ia32cap_P" && $::elf>0)
+ { &::lea($dst,&::DWP("$sym-$reflabel",$base)); }
else
{ &::lea($dst,&::DWP("_GLOBAL_OFFSET_TABLE_+[.-$reflabel]",
$base));