diff options
author | Mark Kettenis <kettenis@cvs.openbsd.org> | 2012-10-31 11:19:36 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@cvs.openbsd.org> | 2012-10-31 11:19:36 +0000 |
commit | aa5ff5446969d74fd0d83456706dd943ac03e69c (patch) | |
tree | 6223f292d4d80affec9b50118f5bc5b910965f53 /lib/libcrypto/rc4 | |
parent | 1cfa1b8f05d4f8a8ae580f3fbf9633bd7eb2655c (diff) |
On amd64 OPENSSL_cpuid_setup and OPENSSL_ia32cap_P are now hidden so we don't
have to go through the PLT/GOT to get at them anymore. In fact going through
the GOT now fails since we no longer have a GOT entry for OPENSSL_ia32cap_P.
Fixes the problem spotted by jasper@ and sthen@. Based on a diff from mikeb@
who did most of the actual work of tracking down the issue.
ok millert@, mikeb@
Diffstat (limited to 'lib/libcrypto/rc4')
-rwxr-xr-x | lib/libcrypto/rc4/asm/rc4-x86_64.pl | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/libcrypto/rc4/asm/rc4-x86_64.pl b/lib/libcrypto/rc4/asm/rc4-x86_64.pl index ac2c05074e6..d6eac205e98 100755 --- a/lib/libcrypto/rc4/asm/rc4-x86_64.pl +++ b/lib/libcrypto/rc4/asm/rc4-x86_64.pl @@ -442,7 +442,7 @@ private_RC4_set_key: xor %r10,%r10 xor %r11,%r11 - mov PIC_GOT(OPENSSL_ia32cap_P),$idx#d + mov OPENSSL_ia32cap_P(%rip),$idx#d bt \$20,$idx#d # RC4_CHAR? jc .Lc1stloop jmp .Lw1stloop @@ -506,7 +506,7 @@ private_RC4_set_key: .align 16 RC4_options: lea .Lopts(%rip),%rax - mov PIC_GOT(OPENSSL_ia32cap_P),%edx + mov OPENSSL_ia32cap_P(%rip),%edx bt \$20,%edx jc .L8xchar bt \$30,%edx |