summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/rc4
diff options
context:
space:
mode:
authorkettenis <>2012-10-31 11:19:35 +0000
committerkettenis <>2012-10-31 11:19:35 +0000
commite05982c56ef9dbde368df8fe35a8458f34b76f76 (patch)
treedf8275e2ac9f9c9853242382bc11bb6d08487c90 /src/lib/libcrypto/rc4
parent21f5cd5730973fef800d5035b20030617736629a (diff)
downloadopenbsd-e05982c56ef9dbde368df8fe35a8458f34b76f76.tar.gz
openbsd-e05982c56ef9dbde368df8fe35a8458f34b76f76.tar.bz2
openbsd-e05982c56ef9dbde368df8fe35a8458f34b76f76.zip
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 'src/lib/libcrypto/rc4')
-rwxr-xr-xsrc/lib/libcrypto/rc4/asm/rc4-x86_64.pl4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lib/libcrypto/rc4/asm/rc4-x86_64.pl b/src/lib/libcrypto/rc4/asm/rc4-x86_64.pl
index ac2c05074e..d6eac205e9 100755
--- a/src/lib/libcrypto/rc4/asm/rc4-x86_64.pl
+++ b/src/lib/libcrypto/rc4/asm/rc4-x86_64.pl
@@ -442,7 +442,7 @@ private_RC4_set_key:
442 xor %r10,%r10 442 xor %r10,%r10
443 xor %r11,%r11 443 xor %r11,%r11
444 444
445 mov PIC_GOT(OPENSSL_ia32cap_P),$idx#d 445 mov OPENSSL_ia32cap_P(%rip),$idx#d
446 bt \$20,$idx#d # RC4_CHAR? 446 bt \$20,$idx#d # RC4_CHAR?
447 jc .Lc1stloop 447 jc .Lc1stloop
448 jmp .Lw1stloop 448 jmp .Lw1stloop
@@ -506,7 +506,7 @@ private_RC4_set_key:
506.align 16 506.align 16
507RC4_options: 507RC4_options:
508 lea .Lopts(%rip),%rax 508 lea .Lopts(%rip),%rax
509 mov PIC_GOT(OPENSSL_ia32cap_P),%edx 509 mov OPENSSL_ia32cap_P(%rip),%edx
510 bt \$20,%edx 510 bt \$20,%edx
511 jc .L8xchar 511 jc .L8xchar
512 bt \$30,%edx 512 bt \$30,%edx