[test] Reorganize some R_X86_64_ tests
This commit is contained in:
parent
e04fde193b
commit
fe9f2ac8e7
@ -18,30 +18,12 @@ bar:
|
|||||||
movl bar, %edx # R_X86_64_32S
|
movl bar, %edx # R_X86_64_32S
|
||||||
movq bar, %rdx # R_X86_64_32S
|
movq bar, %rdx # R_X86_64_32S
|
||||||
.long bar # R_X86_64_32
|
.long bar # R_X86_64_32
|
||||||
leaq foo@GOTTPOFF(%rip), %rax # R_X86_64_GOTTPOFF
|
movabs $0, %rax
|
||||||
movq foo@GOTTPOFF(%rip), %r31 # R_X86_64_CODE_4_GOTTPOFF
|
movabs $0, %rax
|
||||||
addq foo@GOTTPOFF(%rip), %r31 # R_X86_64_CODE_4_GOTTPOFF
|
|
||||||
# NDD
|
|
||||||
addq %r8, foo@GOTTPOFF(%rip), %r16 # R_X86_64_CODE_6_GOTTPOFF
|
|
||||||
addq foo@GOTTPOFF(%rip), %rax, %r12 # R_X86_64_CODE_6_GOTTPOFF
|
|
||||||
# NDD + NF
|
|
||||||
{nf} addq %r8, foo@GOTTPOFF(%rip), %r16 # R_X86_64_CODE_6_GOTTPOFF
|
|
||||||
{nf} addq foo@GOTTPOFF(%rip), %rax, %r12 # R_X86_64_CODE_6_GOTTPOFF
|
|
||||||
# NF
|
|
||||||
{nf} addq foo@GOTTPOFF(%rip), %r12 # R_X86_64_CODE_6_GOTTPOFF
|
|
||||||
|
|
||||||
leaq foo@TLSGD(%rip), %rax # R_X86_64_TLSGD
|
|
||||||
leaq foo@TPOFF(%rax), %rax # R_X86_64_TPOFF32
|
|
||||||
leaq foo@TLSLD(%rip), %rdi # R_X86_64_TLSLD
|
|
||||||
leaq foo@dtpoff(%rax), %rcx # R_X86_64_DTPOFF32
|
|
||||||
movabs foo@GOT, %rax # R_X86_64_GOT64
|
|
||||||
movabs foo@GOTOFF, %rax # R_X86_64_GOTOFF64
|
|
||||||
pushq $bar
|
pushq $bar
|
||||||
movq foo(%rip), %rdx
|
movq foo(%rip), %rdx
|
||||||
leaq foo-bar(%r14),%r14
|
leaq foo-bar(%r14),%r14
|
||||||
addq $bar,%rax # R_X86_64_32S
|
addq $bar,%rax # R_X86_64_32S
|
||||||
.quad foo@DTPOFF
|
|
||||||
movabsq $baz@TPOFF, %rax
|
|
||||||
.word foo-bar
|
.word foo-bar
|
||||||
.byte foo-bar
|
.byte foo-bar
|
||||||
call foo
|
call foo
|
||||||
@ -53,13 +35,6 @@ bar:
|
|||||||
movl $_GLOBAL_OFFSET_TABLE_, %eax
|
movl $_GLOBAL_OFFSET_TABLE_, %eax
|
||||||
movabs $_GLOBAL_OFFSET_TABLE_, %rax
|
movabs $_GLOBAL_OFFSET_TABLE_, %rax
|
||||||
|
|
||||||
.quad blah@SIZE # R_X86_64_SIZE64
|
|
||||||
.quad blah@SIZE + 32 # R_X86_64_SIZE64
|
|
||||||
.quad blah@SIZE - 32 # R_X86_64_SIZE64
|
|
||||||
movl blah@SIZE, %eax # R_X86_64_SIZE32
|
|
||||||
movl blah@SIZE + 32, %eax # R_X86_64_SIZE32
|
|
||||||
movl blah@SIZE - 32, %eax # R_X86_64_SIZE32
|
|
||||||
|
|
||||||
.long foo@gotpcrel
|
.long foo@gotpcrel
|
||||||
.long foo@plt
|
.long foo@plt
|
||||||
|
|
||||||
@ -81,51 +56,29 @@ weak_sym:
|
|||||||
// CHECK: Section {
|
// CHECK: Section {
|
||||||
// CHECK: Name: .rela.text
|
// CHECK: Name: .rela.text
|
||||||
// CHECK: Relocations [
|
// CHECK: Relocations [
|
||||||
// CHECK-NEXT: 0x1 R_X86_64_32 .text
|
// CHECK-NEXT: 0x1 R_X86_64_32 .text 0x0
|
||||||
// CHECK-NEXT: 0x8 R_X86_64_32S .text
|
// CHECK-NEXT: 0x8 R_X86_64_32S .text 0x0
|
||||||
// CHECK-NEXT: 0x13 R_X86_64_32S .text
|
// CHECK-NEXT: 0x13 R_X86_64_32S .text 0x0
|
||||||
// CHECK-NEXT: 0x1A R_X86_64_32S .text
|
// CHECK-NEXT: 0x1A R_X86_64_32S .text 0x0
|
||||||
// CHECK-NEXT: 0x22 R_X86_64_32S .text
|
// CHECK-NEXT: 0x22 R_X86_64_32S .text 0x0
|
||||||
// CHECK-NEXT: 0x26 R_X86_64_32 .text
|
// CHECK-NEXT: 0x26 R_X86_64_32 .text 0x0
|
||||||
// CHECK-NEXT: 0x2D R_X86_64_GOTTPOFF foo 0xFFFFFFFFFFFFFFFC
|
// CHECK-NEXT: 0x3F R_X86_64_32S .text 0x0
|
||||||
// CHECK-NEXT: 0x35 R_X86_64_CODE_4_GOTTPOFF foo 0xFFFFFFFFFFFFFFFC
|
// CHECK-NEXT: 0x46 R_X86_64_PC32 foo 0xFFFFFFFFFFFFFFFC
|
||||||
// CHECK-NEXT: 0x3D R_X86_64_CODE_4_GOTTPOFF foo 0xFFFFFFFFFFFFFFFC
|
// CHECK-NEXT: 0x4D R_X86_64_PC32 foo 0x4D
|
||||||
// CHECK-NEXT: 0x47 R_X86_64_CODE_6_GOTTPOFF foo 0xFFFFFFFFFFFFFFFC
|
// CHECK-NEXT: 0x54 R_X86_64_32S .text 0x0
|
||||||
// CHECK-NEXT: 0x51 R_X86_64_CODE_6_GOTTPOFF foo 0xFFFFFFFFFFFFFFFC
|
// CHECK-NEXT: 0x58 R_X86_64_PC16 foo 0x58
|
||||||
// CHECK-NEXT: 0x5B R_X86_64_CODE_6_GOTTPOFF foo 0xFFFFFFFFFFFFFFFC
|
// CHECK-NEXT: 0x5A R_X86_64_PC8 foo 0x5A
|
||||||
// CHECK-NEXT: 0x65 R_X86_64_CODE_6_GOTTPOFF foo 0xFFFFFFFFFFFFFFFC
|
// CHECK-NEXT: 0x5C R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC
|
||||||
// CHECK-NEXT: 0x6F R_X86_64_CODE_6_GOTTPOFF foo 0xFFFFFFFFFFFFFFFC
|
// CHECK-NEXT: 0x63 R_X86_64_PC32 foo 0xFFFFFFFFFFFFFFFB
|
||||||
// CHECK-NEXT: 0x76 R_X86_64_TLSGD foo 0xFFFFFFFFFFFFFFFC
|
// CHECK-NEXT: 0x6A R_X86_64_GOTPC32 _GLOBAL_OFFSET_TABLE_ 0x3
|
||||||
// CHECK-NEXT: 0x7D R_X86_64_TPOFF32 foo 0x0
|
// CHECK-NEXT: 0x71 R_X86_64_GOTPC32 _GLOBAL_OFFSET_TABLE_ 0xFFFFFFFFFFFFFFFC
|
||||||
// CHECK-NEXT: 0x84 R_X86_64_TLSLD foo 0xFFFFFFFFFFFFFFFC
|
// CHECK-NEXT: 0x76 R_X86_64_GOTPC32 _GLOBAL_OFFSET_TABLE_ 0x1
|
||||||
// CHECK-NEXT: 0x8B R_X86_64_DTPOFF32 foo 0x0
|
// CHECK-NEXT: 0x7C R_X86_64_GOTPC64 _GLOBAL_OFFSET_TABLE_ 0x2
|
||||||
// CHECK-NEXT: 0x91 R_X86_64_GOT64 foo 0x0
|
// CHECK-NEXT: 0x84 R_X86_64_GOTPCREL foo 0x0
|
||||||
// CHECK-NEXT: 0x9B R_X86_64_GOTOFF64 foo 0x0
|
// CHECK-NEXT: 0x88 R_X86_64_PLT32 foo 0x0
|
||||||
// CHECK-NEXT: 0xA4 R_X86_64_32S .text 0x0
|
// CHECK-NEXT: 0x9C R_X86_64_32 .text 0x9C
|
||||||
// CHECK-NEXT: 0xAB R_X86_64_PC32 foo 0xFFFFFFFFFFFFFFFC
|
// CHECK-NEXT: 0xA1 R_X86_64_PC16 pr23771 0xFFFFFFFFFFFFFFFE
|
||||||
// CHECK-NEXT: 0xB2 R_X86_64_PC32 foo 0xB2
|
// CHECK-NEXT: 0xA3 R_X86_64_PC32 pr23272 0x0
|
||||||
// CHECK-NEXT: 0xB9 R_X86_64_32S .text 0x0
|
|
||||||
// CHECK-NEXT: 0xBD R_X86_64_DTPOFF64 foo 0x0
|
|
||||||
// CHECK-NEXT: 0xC7 R_X86_64_TPOFF64 baz 0x0
|
|
||||||
// CHECK-NEXT: 0xCF R_X86_64_PC16 foo 0xCF
|
|
||||||
// CHECK-NEXT: 0xD1 R_X86_64_PC8 foo 0xD1
|
|
||||||
// CHECK-NEXT: 0xD3 R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC
|
|
||||||
// CHECK-NEXT: 0xDA R_X86_64_PC32 foo 0xFFFFFFFFFFFFFFFB
|
|
||||||
// CHECK-NEXT: 0xE1 R_X86_64_GOTPC32 _GLOBAL_OFFSET_TABLE_ 0x3
|
|
||||||
// CHECK-NEXT: 0xE8 R_X86_64_GOTPC32 _GLOBAL_OFFSET_TABLE_ 0xFFFFFFFFFFFFFFFC
|
|
||||||
// CHECK-NEXT: 0xED R_X86_64_GOTPC32 _GLOBAL_OFFSET_TABLE_ 0x1
|
|
||||||
// CHECK-NEXT: 0xF3 R_X86_64_GOTPC64 _GLOBAL_OFFSET_TABLE_ 0x2
|
|
||||||
// CHECK-NEXT: 0xFB R_X86_64_SIZE64 blah 0x0
|
|
||||||
// CHECK-NEXT: 0x103 R_X86_64_SIZE64 blah 0x20
|
|
||||||
// CHECK-NEXT: 0x10B R_X86_64_SIZE64 blah 0xFFFFFFFFFFFFFFE0
|
|
||||||
// CHECK-NEXT: 0x116 R_X86_64_SIZE32 blah 0x0
|
|
||||||
// CHECK-NEXT: 0x11D R_X86_64_SIZE32 blah 0x20
|
|
||||||
// CHECK-NEXT: 0x124 R_X86_64_SIZE32 blah 0xFFFFFFFFFFFFFFE0
|
|
||||||
// CHECK-NEXT: 0x128 R_X86_64_GOTPCREL foo 0x0
|
|
||||||
// CHECK-NEXT: 0x12C R_X86_64_PLT32 foo 0x0
|
|
||||||
// CHECK-NEXT: 0x140 R_X86_64_32 .text 0x140
|
|
||||||
// CHECK-NEXT: 0x145 R_X86_64_PC16 pr23771 0xFFFFFFFFFFFFFFFE
|
|
||||||
// CHECK-NEXT: 0x147 R_X86_64_PC32 pr23272 0x0
|
|
||||||
// CHECK-NEXT: ]
|
// CHECK-NEXT: ]
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
|
|
||||||
|
13
llvm/test/MC/X86/elf-reloc-got.s
Normal file
13
llvm/test/MC/X86/elf-reloc-got.s
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
# RUN: llvm-mc -filetype=obj -triple=x86_64 %s | llvm-readobj -r - | FileCheck %s
|
||||||
|
|
||||||
|
# CHECK: .rela.GOT64 {
|
||||||
|
# CHECK-NEXT: 0x2 R_X86_64_GOT64 dat 0x0
|
||||||
|
# CHECK-NEXT: 0xC R_X86_64_GOT64 und 0x0
|
||||||
|
# CHECK-NEXT: }
|
||||||
|
|
||||||
|
.section .GOT64,"ax"
|
||||||
|
movabs $dat@GOT, %rax
|
||||||
|
movabs $und@GOT, %rax
|
||||||
|
|
||||||
|
.data
|
||||||
|
dat:
|
22
llvm/test/MC/X86/elf-reloc-size.s
Normal file
22
llvm/test/MC/X86/elf-reloc-size.s
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
# RUN: llvm-mc -filetype=obj -triple=x86_64 %s -o %t
|
||||||
|
# RUN: llvm-readobj -r %t | FileCheck %s
|
||||||
|
|
||||||
|
# CHECK: .rela.text {
|
||||||
|
# CHECK-NEXT: 0x3 R_X86_64_SIZE32 foo 0x0
|
||||||
|
# CHECK-NEXT: 0xA R_X86_64_SIZE32 foo 0x20
|
||||||
|
# CHECK-NEXT: 0x11 R_X86_64_SIZE32 foo 0xFFFFFFFFFFFFFFE0
|
||||||
|
# CHECK-NEXT: }
|
||||||
|
# CHECK-NEXT: .rela.data {
|
||||||
|
# CHECK-NEXT: 0x0 R_X86_64_SIZE64 foo 0x0
|
||||||
|
# CHECK-NEXT: 0x8 R_X86_64_SIZE64 foo 0x20
|
||||||
|
# CHECK-NEXT: 0x10 R_X86_64_SIZE64 foo 0xFFFFFFFFFFFFFFE0
|
||||||
|
# CHECK-NEXT: }
|
||||||
|
|
||||||
|
movl foo@SIZE, %eax
|
||||||
|
movl foo@SIZE+32, %eax
|
||||||
|
movl foo@SIZE-32, %eax
|
||||||
|
|
||||||
|
.data
|
||||||
|
.quad foo@SIZE
|
||||||
|
.quad foo@SIZE + 32
|
||||||
|
.quad foo@SIZE - 32
|
37
llvm/test/MC/X86/elf-reloc-tls.s
Normal file
37
llvm/test/MC/X86/elf-reloc-tls.s
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
# RUN: llvm-mc -filetype=obj -triple=x86_64 %s -o %t
|
||||||
|
# RUN: llvm-readobj -r %t | FileCheck %s
|
||||||
|
|
||||||
|
# CHECK: .rela.GOTTPOFF {
|
||||||
|
# CHECK-NEXT: 0x3 R_X86_64_GOTTPOFF tls 0xFFFFFFFFFFFFFFFC
|
||||||
|
# CHECK-NEXT: 0xB R_X86_64_CODE_4_GOTTPOFF foo 0xFFFFFFFFFFFFFFFC
|
||||||
|
# CHECK-NEXT: 0x13 R_X86_64_CODE_4_GOTTPOFF foo 0xFFFFFFFFFFFFFFFC
|
||||||
|
# CHECK-NEXT: 0x1D R_X86_64_CODE_6_GOTTPOFF foo 0xFFFFFFFFFFFFFFFC
|
||||||
|
# CHECK-NEXT: 0x27 R_X86_64_CODE_6_GOTTPOFF foo 0xFFFFFFFFFFFFFFFC
|
||||||
|
# CHECK-NEXT: 0x31 R_X86_64_CODE_6_GOTTPOFF foo 0xFFFFFFFFFFFFFFFC
|
||||||
|
# CHECK-NEXT: 0x3B R_X86_64_CODE_6_GOTTPOFF foo 0xFFFFFFFFFFFFFFFC
|
||||||
|
# CHECK-NEXT: 0x45 R_X86_64_CODE_6_GOTTPOFF foo 0xFFFFFFFFFFFFFFFC
|
||||||
|
# CHECK-NEXT: }
|
||||||
|
|
||||||
|
.section .TPOFF,"ax"
|
||||||
|
leaq foo@TPOFF(%rax), %rax # R_X86_64_TPOFF32
|
||||||
|
movabsq $baz@TPOFF, %rax
|
||||||
|
|
||||||
|
.section .GOTTPOFF,"ax"
|
||||||
|
leaq tls@GOTTPOFF(%rip), %rax
|
||||||
|
|
||||||
|
movq foo@GOTTPOFF(%rip), %r31 # R_X86_64_CODE_4_GOTTPOFF
|
||||||
|
addq foo@GOTTPOFF(%rip), %r31 # R_X86_64_CODE_4_GOTTPOFF
|
||||||
|
# NDD
|
||||||
|
addq %r8, foo@GOTTPOFF(%rip), %r16 # R_X86_64_CODE_6_GOTTPOFF
|
||||||
|
addq foo@GOTTPOFF(%rip), %rax, %r12 # R_X86_64_CODE_6_GOTTPOFF
|
||||||
|
# NDD + NF
|
||||||
|
{nf} addq %r8, foo@GOTTPOFF(%rip), %r16 # R_X86_64_CODE_6_GOTTPOFF
|
||||||
|
{nf} addq foo@GOTTPOFF(%rip), %rax, %r12 # R_X86_64_CODE_6_GOTTPOFF
|
||||||
|
# NF
|
||||||
|
{nf} addq foo@GOTTPOFF(%rip), %r12 # R_X86_64_CODE_6_GOTTPOFF
|
||||||
|
|
||||||
|
.section .GD,"ax"
|
||||||
|
leaq foo@TLSGD(%rip), %rax # R_X86_64_TLSGD
|
||||||
|
leaq foo@TLSLD(%rip), %rdi # R_X86_64_TLSLD
|
||||||
|
leaq foo@dtpoff(%rax), %rcx # R_X86_64_DTPOFF32
|
||||||
|
.quad foo@DTPOFF
|
Loading…
x
Reference in New Issue
Block a user