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
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
0 commit comments