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
commit32d6b9fd8bf5ca2c2be1fa08a2528c8631540b9a (patch)
treedf8275e2ac9f9c9853242382bc11bb6d08487c90 /src/lib/libcrypto/rc4
parente20093d61c475a4cd15e9e663f32b4d0f86f7fc7 (diff)
downloadopenbsd-32d6b9fd8bf5ca2c2be1fa08a2528c8631540b9a.tar.gz
openbsd-32d6b9fd8bf5ca2c2be1fa08a2528c8631540b9a.tar.bz2
openbsd-32d6b9fd8bf5ca2c2be1fa08a2528c8631540b9a.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