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:29:07 +0100
commit5615196f7bd467f1e56e275bf740a62caa04d107 (patch)
tree9a17e3d60a9ec8c089286b64dde44ece2e30b9f4 /crypto/perlasm
parent1f59eb5f111149eb0cf5cdc2b378cfa0fbdfa9c3 (diff)
perlasm/x86gas.pl: limit special OPENSSL_ia32cap_P treatment to ELF.
(cherry picked from commit ce876d8316409542283b356d331f90e1a1dfb853)
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));