15
15
# RUN: llvm-objdump -d --no-show-raw-insn %t.so | FileCheck %s
16
16
17
17
# SEC-PIE: Name Type Address Off Size ES Flg Lk Inf Al
18
- # SEC-PIE: .got PROGBITS 0000000002002110 2012110 000008 00 WA 0 0 8
19
- # SEC-PIE: .branch_lt NOBITS 0000000002002120 2012120 000020 00 WA 0 0 8
18
+ # SEC-PIE: .got PROGBITS 0000000002002120 2012120 000010 00 WA 0 0 8
19
+ # SEC-PIE: .branch_lt NOBITS 0000000002002138 2012138 000020 00 WA 0 0 8
20
20
21
21
# SEC-SHARED: Name Type Address Off Size ES Flg Lk Inf Al
22
- # SEC-SHARED: .got PROGBITS 00000000020020f0 20120f0 000008 00 WA 0 0 8
23
- # SEC-SHARED: .branch_lt NOBITS 0000000002002100 2012100 000020 00 WA 0 0 8
22
+ # SEC-SHARED: .got PROGBITS 0000000002002100 2012100 000010 00 WA 0 0 8
23
+ # SEC-SHARED: .branch_lt NOBITS 0000000002002118 2012118 000020 00 WA 0 0 8
24
24
25
25
# RELOC: .rela.dyn {
26
- # RELOC-NEXT: 0x2002118 R_PPC64_RELATIVE - 0x2012110
27
- # RELOC-NEXT: 0x2002120 R_PPC64_RELATIVE - 0x2002000
28
- # RELOC-NEXT: 0x2002128 R_PPC64_RELATIVE - 0x2002008
29
- # RELOC-NEXT: 0x2002130 R_PPC64_RELATIVE - 0x200200C
30
- # RELOC-NEXT: 0x2002138 R_PPC64_RELATIVE - 0x2000
26
+ # RELOC-NEXT: 0x2002128 R_PPC64_RELATIVE - 0x2002000
27
+ # RELOC-NEXT: 0x2002130 R_PPC64_RELATIVE - 0x2012120
28
+ # RELOC-NEXT: 0x2002138 R_PPC64_RELATIVE - 0x2002000
29
+ # RELOC-NEXT: 0x2002140 R_PPC64_RELATIVE - 0x2002008
30
+ # RELOC-NEXT: 0x2002148 R_PPC64_RELATIVE - 0x200200C
31
+ # RELOC-NEXT: 0x2002150 R_PPC64_RELATIVE - 0x2000
31
32
# RELOC-NEXT: }
32
33
33
34
# CHECK: <_start>:
36
37
# CHECK-NEXT: bl 0x2030
37
38
# CHECK-NEXT: bl 0x2050
38
39
39
- ## &.branch_lt[0] - .TOC. = .branch_lt - (.got+0x8000) = -32752
40
+ ## &.branch_lt[0] - .TOC. = .branch_lt - (.got+0x8000) = -32744
40
41
# CHECK: <__long_branch_>:
41
42
# CHECK-NEXT: 2010: addis 12, 2, 0
42
- # CHECK-NEXT: ld 12, -32752 (12)
43
+ # CHECK-NEXT: ld 12, -32744 (12)
43
44
# CHECK-NEXT: mtctr 12
44
45
# CHECK-NEXT: bctr
45
46
46
- ## &.branch_lt[1] - .TOC. = .branch_lt - (.got+0x8000) = -32744
47
+ ## &.branch_lt[1] - .TOC. = .branch_lt - (.got+0x8000) = -32736
47
48
# CHECK: <__long_branch_>:
48
49
# CHECK-NEXT: 2030: addis 12, 2, 0
49
- # CHECK-NEXT: ld 12, -32744 (12)
50
+ # CHECK-NEXT: ld 12, -32736 (12)
50
51
# CHECK-NEXT: mtctr 12
51
52
# CHECK-NEXT: bctr
52
53
53
- ## &.branch_lt[2] - .TOC. = .branch_lt - (.got+0x8000) = -32736
54
+ ## &.branch_lt[2] - .TOC. = .branch_lt - (.got+0x8000) = -32728
54
55
# CHECK: <__long_branch_>:
55
56
# CHECK-NEXT: 2050: addis 12, 2, 0
56
- # CHECK-NEXT: ld 12, -32736 (12)
57
+ # CHECK-NEXT: ld 12, -32728 (12)
57
58
# CHECK-NEXT: mtctr 12
58
59
# CHECK-NEXT: bctr
59
60
@@ -68,12 +69,12 @@ bl .text_high+0xc # Need a thunk
68
69
# CHECK: <high_target>:
69
70
# CHECK-NEXT: 2002000: bl 0x2004
70
71
# CHECK-NEXT: bl 0x2004
71
- # CHECK-NEXT: bl 0x2002010
72
+ # CHECK-NEXT: bl 0x2002020
72
73
73
- ## &.branch_lt[3] - .TOC. = .branch_lt - (.got+0x8000) = -32728
74
+ ## &.branch_lt[3] - .TOC. = .branch_lt - (.got+0x8000) = -32720
74
75
# CHECK: <__long_branch_>:
75
- # CHECK-NEXT: 2002010 : addis 12, 2, 0
76
- # CHECK-NEXT: ld 12, -32728 (12)
76
+ # CHECK-NEXT: 2002020 : addis 12, 2, 0
77
+ # CHECK-NEXT: ld 12, -32720 (12)
77
78
# CHECK-NEXT: mtctr 12
78
79
# CHECK-NEXT: bctr
79
80
@@ -85,6 +86,8 @@ bl .text_low # Need a thunk
85
86
blr
86
87
87
88
## Force creation of .got
89
+ addis 3 , 2 , .text_high@got@ha
90
+
88
91
## The R_PPC64_RELATIVE makes sure .rela.dyn survives removeUnusedSyntheticSections.
89
92
.section .data
90
93
.quad .TOC.@tocbase
0 commit comments