|| fixP->fx_r_type == BFD_RELOC_X86_64_TPOFF32
|| fixP->fx_r_type == BFD_RELOC_X86_64_TPOFF64
|| fixP->fx_r_type == BFD_RELOC_X86_64_GOTOFF64
+ || fixP->fx_r_type == BFD_RELOC_X86_64_GOT64
|| fixP->fx_r_type == BFD_RELOC_X86_64_GOTPC32_TLSDESC
|| fixP->fx_r_type == BFD_RELOC_X86_64_CODE_4_GOTPC32_TLSDESC
|| fixP->fx_r_type == BFD_RELOC_X86_64_TLSDESC_CALL
.*[ ]+R_X86_64_32[ ]+xtrn
.*[ ]+R_X86_64_32S[ ]+xtrn
.*[ ]+R_X86_64_32[ ]+xtrn
+.*[ ]+R_X86_64_GOT64[ ]+ptr
+.*[ ]+R_X86_64_GOTOFF64[ ]+Ldst
Disassembly of section \.data:
#...
.*[ ]+R_X86_64_64[ ]+xtrn
.*[ ]+R_X86_64_GOT32[ ]+xtrn-0x4
.*[ ]+R_X86_64_GOT32[ ]+xtrn\+0x4
.*[ ]+R_X86_64_GOTPLT64[ ]+xtrn
+
+.* <ptr>:
+ ...
+.* <Ldst>:
+ ...
vgatherdps %xmm2, xtrn(,%xmm1), %xmm0
addr32 vgatherdps %xmm2, xtrn(,%xmm1), %xmm0
bad .long xtrn@plt - .
+
+ .text
+ movabs $ptr@GOT, %rax
+ movabs $Ldst@GOTOFF, %rdx
+ .data
+ptr:
+ .quad 0
+Ldst:
+ .quad 0
--- /dev/null
+ .text
+ .global _start
+_start:
+ leaq 1f(%rip), %r11
+1:
+ movabs $_GLOBAL_OFFSET_TABLE_, %r15
+ leaq (%r11,%r15), %r15
+
+ movabs $ptr@GOT, %rax
+ movabs $Ldst@GOTOFF, %rdx
+ movq (%rax,%r15), %rax
+ leaq (%rdx,%r15), %rcx
+ movq %rcx, (%rax)
+
+ # Write out "PASS\n".
+ movl $5, %edx
+ movl $.LC0, %esi
+ movl $1, %edi
+ movl $1, %eax
+ syscall
+
+ # exit
+ movq $60, %rax
+ movq $0, %rdi
+ syscall
+
+ .data
+Ldst:
+ .quad 0
+ptr:
+ .quad 0
+ .section .rodata.str1.1,"aMS",@progbits,1
+.LC0:
+ .string "PASS\n"
+ .section .note.GNU-stack,"",@progbits
"pass.out" \
"-fPIE" \
] \
+ [list \
+ "Run pr32189" \
+ "-nostdlib -nostartfiles" \
+ "" \
+ { pr32189.s } \
+ "pr32189" \
+ "pass.out" \
+ ] \
]
# Run-time tests which require working ifunc attribute support.