Skip to content

Commit fe9f2ac

Browse files
committed
[test] Reorganize some R_X86_64_ tests
1 parent e04fde1 commit fe9f2ac

File tree

4 files changed

+97
-72
lines changed

4 files changed

+97
-72
lines changed

llvm/test/MC/ELF/relocation.s

Lines changed: 25 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -18,30 +18,12 @@ bar:
1818
movl bar, %edx # R_X86_64_32S
1919
movq bar, %rdx # R_X86_64_32S
2020
.long bar # R_X86_64_32
21-
leaq foo@GOTTPOFF(%rip), %rax # R_X86_64_GOTTPOFF
22-
movq foo@GOTTPOFF(%rip), %r31 # R_X86_64_CODE_4_GOTTPOFF
23-
addq foo@GOTTPOFF(%rip), %r31 # R_X86_64_CODE_4_GOTTPOFF
24-
# NDD
25-
addq %r8, foo@GOTTPOFF(%rip), %r16 # R_X86_64_CODE_6_GOTTPOFF
26-
addq foo@GOTTPOFF(%rip), %rax, %r12 # R_X86_64_CODE_6_GOTTPOFF
27-
# NDD + NF
28-
{nf} addq %r8, foo@GOTTPOFF(%rip), %r16 # R_X86_64_CODE_6_GOTTPOFF
29-
{nf} addq foo@GOTTPOFF(%rip), %rax, %r12 # R_X86_64_CODE_6_GOTTPOFF
30-
# NF
31-
{nf} addq foo@GOTTPOFF(%rip), %r12 # R_X86_64_CODE_6_GOTTPOFF
32-
33-
leaq foo@TLSGD(%rip), %rax # R_X86_64_TLSGD
34-
leaq foo@TPOFF(%rax), %rax # R_X86_64_TPOFF32
35-
leaq foo@TLSLD(%rip), %rdi # R_X86_64_TLSLD
36-
leaq foo@dtpoff(%rax), %rcx # R_X86_64_DTPOFF32
37-
movabs foo@GOT, %rax # R_X86_64_GOT64
38-
movabs foo@GOTOFF, %rax # R_X86_64_GOTOFF64
21+
movabs $0, %rax
22+
movabs $0, %rax
3923
pushq $bar
4024
movq foo(%rip), %rdx
4125
leaq foo-bar(%r14),%r14
4226
addq $bar,%rax # R_X86_64_32S
43-
.quad foo@DTPOFF
44-
movabsq $baz@TPOFF, %rax
4527
.word foo-bar
4628
.byte foo-bar
4729
call foo
@@ -53,13 +35,6 @@ bar:
5335
movl $_GLOBAL_OFFSET_TABLE_, %eax
5436
movabs $_GLOBAL_OFFSET_TABLE_, %rax
5537

56-
.quad blah@SIZE # R_X86_64_SIZE64
57-
.quad blah@SIZE + 32 # R_X86_64_SIZE64
58-
.quad blah@SIZE - 32 # R_X86_64_SIZE64
59-
movl blah@SIZE, %eax # R_X86_64_SIZE32
60-
movl blah@SIZE + 32, %eax # R_X86_64_SIZE32
61-
movl blah@SIZE - 32, %eax # R_X86_64_SIZE32
62-
6338
.long foo@gotpcrel
6439
.long foo@plt
6540

@@ -81,51 +56,29 @@ weak_sym:
8156
// CHECK: Section {
8257
// CHECK: Name: .rela.text
8358
// CHECK: Relocations [
84-
// CHECK-NEXT: 0x1 R_X86_64_32 .text
85-
// CHECK-NEXT: 0x8 R_X86_64_32S .text
86-
// CHECK-NEXT: 0x13 R_X86_64_32S .text
87-
// CHECK-NEXT: 0x1A R_X86_64_32S .text
88-
// CHECK-NEXT: 0x22 R_X86_64_32S .text
89-
// CHECK-NEXT: 0x26 R_X86_64_32 .text
90-
// CHECK-NEXT: 0x2D R_X86_64_GOTTPOFF foo 0xFFFFFFFFFFFFFFFC
91-
// CHECK-NEXT: 0x35 R_X86_64_CODE_4_GOTTPOFF foo 0xFFFFFFFFFFFFFFFC
92-
// CHECK-NEXT: 0x3D R_X86_64_CODE_4_GOTTPOFF foo 0xFFFFFFFFFFFFFFFC
93-
// CHECK-NEXT: 0x47 R_X86_64_CODE_6_GOTTPOFF foo 0xFFFFFFFFFFFFFFFC
94-
// CHECK-NEXT: 0x51 R_X86_64_CODE_6_GOTTPOFF foo 0xFFFFFFFFFFFFFFFC
95-
// CHECK-NEXT: 0x5B R_X86_64_CODE_6_GOTTPOFF foo 0xFFFFFFFFFFFFFFFC
96-
// CHECK-NEXT: 0x65 R_X86_64_CODE_6_GOTTPOFF foo 0xFFFFFFFFFFFFFFFC
97-
// CHECK-NEXT: 0x6F R_X86_64_CODE_6_GOTTPOFF foo 0xFFFFFFFFFFFFFFFC
98-
// CHECK-NEXT: 0x76 R_X86_64_TLSGD foo 0xFFFFFFFFFFFFFFFC
99-
// CHECK-NEXT: 0x7D R_X86_64_TPOFF32 foo 0x0
100-
// CHECK-NEXT: 0x84 R_X86_64_TLSLD foo 0xFFFFFFFFFFFFFFFC
101-
// CHECK-NEXT: 0x8B R_X86_64_DTPOFF32 foo 0x0
102-
// CHECK-NEXT: 0x91 R_X86_64_GOT64 foo 0x0
103-
// CHECK-NEXT: 0x9B R_X86_64_GOTOFF64 foo 0x0
104-
// CHECK-NEXT: 0xA4 R_X86_64_32S .text 0x0
105-
// CHECK-NEXT: 0xAB R_X86_64_PC32 foo 0xFFFFFFFFFFFFFFFC
106-
// CHECK-NEXT: 0xB2 R_X86_64_PC32 foo 0xB2
107-
// CHECK-NEXT: 0xB9 R_X86_64_32S .text 0x0
108-
// CHECK-NEXT: 0xBD R_X86_64_DTPOFF64 foo 0x0
109-
// CHECK-NEXT: 0xC7 R_X86_64_TPOFF64 baz 0x0
110-
// CHECK-NEXT: 0xCF R_X86_64_PC16 foo 0xCF
111-
// CHECK-NEXT: 0xD1 R_X86_64_PC8 foo 0xD1
112-
// CHECK-NEXT: 0xD3 R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC
113-
// CHECK-NEXT: 0xDA R_X86_64_PC32 foo 0xFFFFFFFFFFFFFFFB
114-
// CHECK-NEXT: 0xE1 R_X86_64_GOTPC32 _GLOBAL_OFFSET_TABLE_ 0x3
115-
// CHECK-NEXT: 0xE8 R_X86_64_GOTPC32 _GLOBAL_OFFSET_TABLE_ 0xFFFFFFFFFFFFFFFC
116-
// CHECK-NEXT: 0xED R_X86_64_GOTPC32 _GLOBAL_OFFSET_TABLE_ 0x1
117-
// CHECK-NEXT: 0xF3 R_X86_64_GOTPC64 _GLOBAL_OFFSET_TABLE_ 0x2
118-
// CHECK-NEXT: 0xFB R_X86_64_SIZE64 blah 0x0
119-
// CHECK-NEXT: 0x103 R_X86_64_SIZE64 blah 0x20
120-
// CHECK-NEXT: 0x10B R_X86_64_SIZE64 blah 0xFFFFFFFFFFFFFFE0
121-
// CHECK-NEXT: 0x116 R_X86_64_SIZE32 blah 0x0
122-
// CHECK-NEXT: 0x11D R_X86_64_SIZE32 blah 0x20
123-
// CHECK-NEXT: 0x124 R_X86_64_SIZE32 blah 0xFFFFFFFFFFFFFFE0
124-
// CHECK-NEXT: 0x128 R_X86_64_GOTPCREL foo 0x0
125-
// CHECK-NEXT: 0x12C R_X86_64_PLT32 foo 0x0
126-
// CHECK-NEXT: 0x140 R_X86_64_32 .text 0x140
127-
// CHECK-NEXT: 0x145 R_X86_64_PC16 pr23771 0xFFFFFFFFFFFFFFFE
128-
// CHECK-NEXT: 0x147 R_X86_64_PC32 pr23272 0x0
59+
// CHECK-NEXT: 0x1 R_X86_64_32 .text 0x0
60+
// CHECK-NEXT: 0x8 R_X86_64_32S .text 0x0
61+
// CHECK-NEXT: 0x13 R_X86_64_32S .text 0x0
62+
// CHECK-NEXT: 0x1A R_X86_64_32S .text 0x0
63+
// CHECK-NEXT: 0x22 R_X86_64_32S .text 0x0
64+
// CHECK-NEXT: 0x26 R_X86_64_32 .text 0x0
65+
// CHECK-NEXT: 0x3F R_X86_64_32S .text 0x0
66+
// CHECK-NEXT: 0x46 R_X86_64_PC32 foo 0xFFFFFFFFFFFFFFFC
67+
// CHECK-NEXT: 0x4D R_X86_64_PC32 foo 0x4D
68+
// CHECK-NEXT: 0x54 R_X86_64_32S .text 0x0
69+
// CHECK-NEXT: 0x58 R_X86_64_PC16 foo 0x58
70+
// CHECK-NEXT: 0x5A R_X86_64_PC8 foo 0x5A
71+
// CHECK-NEXT: 0x5C R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC
72+
// CHECK-NEXT: 0x63 R_X86_64_PC32 foo 0xFFFFFFFFFFFFFFFB
73+
// CHECK-NEXT: 0x6A R_X86_64_GOTPC32 _GLOBAL_OFFSET_TABLE_ 0x3
74+
// CHECK-NEXT: 0x71 R_X86_64_GOTPC32 _GLOBAL_OFFSET_TABLE_ 0xFFFFFFFFFFFFFFFC
75+
// CHECK-NEXT: 0x76 R_X86_64_GOTPC32 _GLOBAL_OFFSET_TABLE_ 0x1
76+
// CHECK-NEXT: 0x7C R_X86_64_GOTPC64 _GLOBAL_OFFSET_TABLE_ 0x2
77+
// CHECK-NEXT: 0x84 R_X86_64_GOTPCREL foo 0x0
78+
// CHECK-NEXT: 0x88 R_X86_64_PLT32 foo 0x0
79+
// CHECK-NEXT: 0x9C R_X86_64_32 .text 0x9C
80+
// CHECK-NEXT: 0xA1 R_X86_64_PC16 pr23771 0xFFFFFFFFFFFFFFFE
81+
// CHECK-NEXT: 0xA3 R_X86_64_PC32 pr23272 0x0
12982
// CHECK-NEXT: ]
13083
// CHECK-NEXT: }
13184

llvm/test/MC/X86/elf-reloc-got.s

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# RUN: llvm-mc -filetype=obj -triple=x86_64 %s | llvm-readobj -r - | FileCheck %s
2+
3+
# CHECK: .rela.GOT64 {
4+
# CHECK-NEXT: 0x2 R_X86_64_GOT64 dat 0x0
5+
# CHECK-NEXT: 0xC R_X86_64_GOT64 und 0x0
6+
# CHECK-NEXT: }
7+
8+
.section .GOT64,"ax"
9+
movabs $dat@GOT, %rax
10+
movabs $und@GOT, %rax
11+
12+
.data
13+
dat:

llvm/test/MC/X86/elf-reloc-size.s

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# RUN: llvm-mc -filetype=obj -triple=x86_64 %s -o %t
2+
# RUN: llvm-readobj -r %t | FileCheck %s
3+
4+
# CHECK: .rela.text {
5+
# CHECK-NEXT: 0x3 R_X86_64_SIZE32 foo 0x0
6+
# CHECK-NEXT: 0xA R_X86_64_SIZE32 foo 0x20
7+
# CHECK-NEXT: 0x11 R_X86_64_SIZE32 foo 0xFFFFFFFFFFFFFFE0
8+
# CHECK-NEXT: }
9+
# CHECK-NEXT: .rela.data {
10+
# CHECK-NEXT: 0x0 R_X86_64_SIZE64 foo 0x0
11+
# CHECK-NEXT: 0x8 R_X86_64_SIZE64 foo 0x20
12+
# CHECK-NEXT: 0x10 R_X86_64_SIZE64 foo 0xFFFFFFFFFFFFFFE0
13+
# CHECK-NEXT: }
14+
15+
movl foo@SIZE, %eax
16+
movl foo@SIZE+32, %eax
17+
movl foo@SIZE-32, %eax
18+
19+
.data
20+
.quad foo@SIZE
21+
.quad foo@SIZE + 32
22+
.quad foo@SIZE - 32

llvm/test/MC/X86/elf-reloc-tls.s

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# RUN: llvm-mc -filetype=obj -triple=x86_64 %s -o %t
2+
# RUN: llvm-readobj -r %t | FileCheck %s
3+
4+
# CHECK: .rela.GOTTPOFF {
5+
# CHECK-NEXT: 0x3 R_X86_64_GOTTPOFF tls 0xFFFFFFFFFFFFFFFC
6+
# CHECK-NEXT: 0xB R_X86_64_CODE_4_GOTTPOFF foo 0xFFFFFFFFFFFFFFFC
7+
# CHECK-NEXT: 0x13 R_X86_64_CODE_4_GOTTPOFF foo 0xFFFFFFFFFFFFFFFC
8+
# CHECK-NEXT: 0x1D R_X86_64_CODE_6_GOTTPOFF foo 0xFFFFFFFFFFFFFFFC
9+
# CHECK-NEXT: 0x27 R_X86_64_CODE_6_GOTTPOFF foo 0xFFFFFFFFFFFFFFFC
10+
# CHECK-NEXT: 0x31 R_X86_64_CODE_6_GOTTPOFF foo 0xFFFFFFFFFFFFFFFC
11+
# CHECK-NEXT: 0x3B R_X86_64_CODE_6_GOTTPOFF foo 0xFFFFFFFFFFFFFFFC
12+
# CHECK-NEXT: 0x45 R_X86_64_CODE_6_GOTTPOFF foo 0xFFFFFFFFFFFFFFFC
13+
# CHECK-NEXT: }
14+
15+
.section .TPOFF,"ax"
16+
leaq foo@TPOFF(%rax), %rax # R_X86_64_TPOFF32
17+
movabsq $baz@TPOFF, %rax
18+
19+
.section .GOTTPOFF,"ax"
20+
leaq tls@GOTTPOFF(%rip), %rax
21+
22+
movq foo@GOTTPOFF(%rip), %r31 # R_X86_64_CODE_4_GOTTPOFF
23+
addq foo@GOTTPOFF(%rip), %r31 # R_X86_64_CODE_4_GOTTPOFF
24+
# NDD
25+
addq %r8, foo@GOTTPOFF(%rip), %r16 # R_X86_64_CODE_6_GOTTPOFF
26+
addq foo@GOTTPOFF(%rip), %rax, %r12 # R_X86_64_CODE_6_GOTTPOFF
27+
# NDD + NF
28+
{nf} addq %r8, foo@GOTTPOFF(%rip), %r16 # R_X86_64_CODE_6_GOTTPOFF
29+
{nf} addq foo@GOTTPOFF(%rip), %rax, %r12 # R_X86_64_CODE_6_GOTTPOFF
30+
# NF
31+
{nf} addq foo@GOTTPOFF(%rip), %r12 # R_X86_64_CODE_6_GOTTPOFF
32+
33+
.section .GD,"ax"
34+
leaq foo@TLSGD(%rip), %rax # R_X86_64_TLSGD
35+
leaq foo@TLSLD(%rip), %rdi # R_X86_64_TLSLD
36+
leaq foo@dtpoff(%rax), %rcx # R_X86_64_DTPOFF32
37+
.quad foo@DTPOFF

0 commit comments

Comments
 (0)