old-cross-binutils/ld/testsuite/ld-x86-64/tlsie4.dd
H.J. Lu cf61b7473a X32: Add REX prefix to encode R_X86_64_GOTTPOFF
Structions with R_X86_64_GOTTPOFF relocation must be encoded with REX
prefix even if it isn't required by destination register.  Otherwise
linker can't safely perform IE -> LE optimization.

bfd/

	PR ld/17482
	* elf64-x86-64.c (elf_x86_64_relocate_section): Update comments
	for IE->LE transition.

gas/

	PR ld/17482
	* config/tc-i386.c (output_insn): Add a dummy REX_OPCODE prefix
	for structions with R_X86_64_GOTTPOFF relocation for x32 if needed.

gas/testsuite/

	PR ld/17482
	* gas/i386/ilp32/x32-tls.d: New file.
	* gas/i386/ilp32/x32-tls.s: Likewise.

ld/testsuite/

	PR ld/17482
	* ld-x86-64/tlsie4.dd: Updated.
2014-11-07 12:22:53 -08:00

18 lines
563 B
Text

#source: tlsie4.s
#as: --x32
#ld: -melf32_x86_64 tmpdir/tlsie4
#objdump: -drw
#target: x86_64-*-linux*
.*: +file format .*
Disassembly of section .text:
[a-f0-9]+ <_start>:
[ ]*[a-f0-9]+: 40 c7 c0 fc ff ff ff rex mov \$0xfffffffc,%eax
[ ]*[a-f0-9]+: 40 8d 80 fc ff ff ff rex lea -0x4\(%rax\),%eax
[ ]*[a-f0-9]+: 41 c7 c0 fc ff ff ff mov \$0xfffffffc,%r8d
[ ]*[a-f0-9]+: 45 8d 80 fc ff ff ff lea -0x4\(%r8\),%r8d
[ ]*[a-f0-9]+: 41 c7 c4 fc ff ff ff mov \$0xfffffffc,%r12d
[ ]*[a-f0-9]+: 41 81 c4 fc ff ff ff add \$0xfffffffc,%r12d
#pass