GOT-relative lookups in RC4 code.
diff --git a/crypto/rc4/asm/rc4-x86_64.pl b/crypto/rc4/asm/rc4-x86_64.pl
index c7da8fa..a5b2216 100644
--- a/crypto/rc4/asm/rc4-x86_64.pl
+++ b/crypto/rc4/asm/rc4-x86_64.pl
@@ -158,7 +158,8 @@
mov -4($dat),$YY#b
cmpl \$-1,256($dat)
je .LRC4_CHAR
- mov OPENSSL_ia32cap_P(%rip),%r8d
+ mov OPENSSL_ia32cap_P\@GOTPCREL(%rip),%r8
+ mov (%r8),%r8d
xor $TX[1],$TX[1]
inc $XX[0]#b
sub $XX[0],$TX[1]
@@ -443,7 +444,8 @@
xor %r10,%r10
xor %r11,%r11
- mov OPENSSL_ia32cap_P(%rip),$idx#d
+ mov OPENSSL_ia32cap_P\@GOTPCREL(%rip),$idx
+ mov ($idx),$idx#d
bt \$20,$idx#d # RC4_CHAR?
jc .Lc1stloop
jmp .Lw1stloop
@@ -507,7 +509,8 @@
.align 16
RC4_options:
lea .Lopts(%rip),%rax
- mov OPENSSL_ia32cap_P(%rip),%edx
+ mov OPENSSL_ia32cap_P(%rip),%rdx
+ mov (%rdx),%edx
bt \$20,%edx
jc .L8xchar
bt \$30,%edx