3
3
4
4
# RUN: llvm-mc --triple=loongarch64 %s \
5
5
# RUN: | FileCheck %s --check-prefix=NORMAL
6
+ # RUN: llvm-mc --filetype=obj --triple=loongarch64 --mattr=-relax %s -o %t
7
+ # RUN: llvm-readobj -r %t | FileCheck %s --check-prefix=RELOC
8
+ # RUN: llvm-mc --filetype=obj --triple=loongarch64 --mattr=+relax %s -o %t.relax
9
+ # RUN: llvm-readobj -r %t.relax | FileCheck %s --check-prefixes=RELOC,RELAX
6
10
# RUN: llvm-mc --triple=loongarch64 --mattr=+la-global-with-pcrel < %s \
7
11
# RUN: | FileCheck %s --check-prefix=GTOPCR
12
+ # RUN: llvm-mc --filetype=obj --triple=loongarch64 --mattr=+la-global-with-pcrel \
13
+ # RUN: --mattr=-relax %s -o %t
14
+ # RUN: llvm-readobj -r %t | FileCheck %s --check-prefix=GTOPCR-RELOC
15
+ # RUN: llvm-mc --filetype=obj --triple=loongarch64 --mattr=+la-global-with-pcrel \
16
+ # RUN: --mattr=+relax %s -o %t.relax
17
+ # RUN: llvm-readobj -r %t.relax | FileCheck %s --check-prefixes=GTOPCR-RELOC,GTOPCR-RELAX
8
18
# RUN: llvm-mc --triple=loongarch64 --mattr=+la-global-with-abs < %s \
9
19
# RUN: | FileCheck %s --check-prefix=GTOABS
10
20
# RUN: llvm-mc --triple=loongarch64 --mattr=+la-local-with-abs < %s \
11
21
# RUN: | FileCheck %s --check-prefix=LTOABS
12
22
23
+ # RELOC: Relocations [
24
+ # RELOC-NEXT: Section ({{.*}}) .rela.text {
25
+
13
26
la $a0, sym
14
27
# NORMAL: pcalau12i $a0, %got_pc_hi20(sym)
15
28
# NORMAL-NEXT: ld.d $a0, $a0, %got_pc_lo12(sym)
@@ -22,6 +35,16 @@ la $a0, sym
22
35
# GTOABS-NEXT: lu32i.d $a0, %abs64_lo20(sym)
23
36
# GTOABS-NEXT: lu52i.d $a0, $a0, %abs64_hi12(sym)
24
37
38
+ # RELOC-NEXT: R_LARCH_GOT_PC_HI20 sym 0x0
39
+ # RELAX-NEXT: R_LARCH_RELAX - 0x0
40
+ # RELOC-NEXT: R_LARCH_GOT_PC_LO12 sym 0x0
41
+ # RELAX-NEXT: R_LARCH_RELAX - 0x0
42
+
43
+ # GTOPCR-RELOC: R_LARCH_PCALA_HI20 sym 0x0
44
+ # GTOPCR-RELAX: R_LARCH_RELAX - 0x0
45
+ # GTOPCR-RELOC-NEXT: R_LARCH_PCALA_LO12 sym 0x0
46
+ # GTOPCR-RELAX-NEXT: R_LARCH_RELAX - 0x0
47
+
25
48
la.global $a0, sym_global
26
49
# NORMAL: pcalau12i $a0, %got_pc_hi20(sym_global)
27
50
# NORMAL-NEXT: ld.d $a0, $a0, %got_pc_lo12(sym_global)
@@ -34,6 +57,16 @@ la.global $a0, sym_global
34
57
# GTOABS-NEXT: lu32i.d $a0, %abs64_lo20(sym_global)
35
58
# GTOABS-NEXT: lu52i.d $a0, $a0, %abs64_hi12(sym_global)
36
59
60
+ # RELOC-NEXT: R_LARCH_GOT_PC_HI20 sym_global 0x0
61
+ # RELAX-NEXT: R_LARCH_RELAX - 0x0
62
+ # RELOC-NEXT: R_LARCH_GOT_PC_LO12 sym_global 0x0
63
+ # RELAX-NEXT: R_LARCH_RELAX - 0x0
64
+
65
+ # GTOPCR-RELOC-NEXT: R_LARCH_PCALA_HI20 sym_global 0x0
66
+ # GTOPCR-RELAX-NEXT: R_LARCH_RELAX - 0x0
67
+ # GTOPCR-RELOC-NEXT: R_LARCH_PCALA_LO12 sym_global 0x0
68
+ # GTOPCR-RELAX-NEXT: R_LARCH_RELAX - 0x0
69
+
37
70
la.global $a0, $a1, sym_global_large
38
71
# NORMAL: pcalau12i $a0, %got_pc_hi20(sym_global_large)
39
72
# NORMAL-NEXT: addi.d $a1, $zero, %got_pc_lo12(sym_global_large)
@@ -52,6 +85,11 @@ la.global $a0, $a1, sym_global_large
52
85
# GTOABS-NEXT: lu32i.d $a0, %abs64_lo20(sym_global_large)
53
86
# GTOABS-NEXT: lu52i.d $a0, $a0, %abs64_hi12(sym_global_large)
54
87
88
+ # RELOC-NEXT: R_LARCH_GOT_PC_HI20 sym_global_large 0x0
89
+ # RELOC-NEXT: R_LARCH_GOT_PC_LO12 sym_global_large 0x0
90
+ # RELOC-NEXT: R_LARCH_GOT64_PC_LO20 sym_global_large 0x0
91
+ # RELOC-NEXT: R_LARCH_GOT64_PC_HI12 sym_global_large 0x0
92
+
55
93
la.local $a0, sym_local
56
94
# NORMAL: pcalau12i $a0, %pc_hi20(sym_local)
57
95
# NORMAL-NEXT: addi.d $a0, $a0, %pc_lo12(sym_local)
@@ -61,6 +99,11 @@ la.local $a0, sym_local
61
99
# LTOABS-NEXT: lu32i.d $a0, %abs64_lo20(sym_local)
62
100
# LTOABS-NEXT: lu52i.d $a0, $a0, %abs64_hi12(sym_local)
63
101
102
+ # RELOC-NEXT: R_LARCH_PCALA_HI20 sym_local 0x0
103
+ # RELAX-NEXT: R_LARCH_RELAX - 0x0
104
+ # RELOC-NEXT: R_LARCH_PCALA_LO12 sym_local 0x0
105
+ # RELAX-NEXT: R_LARCH_RELAX - 0x0
106
+
64
107
la.local $a0, $a1, sym_local_large
65
108
# NORMAL: pcalau12i $a0, %pc_hi20(sym_local_large)
66
109
# NORMAL-NEXT: addi.d $a1, $zero, %pc_lo12(sym_local_large)
@@ -72,3 +115,12 @@ la.local $a0, $a1, sym_local_large
72
115
# LTOABS-NEXT: ori $a0, $a0, %abs_lo12(sym_local_large)
73
116
# LTOABS-NEXT: lu32i.d $a0, %abs64_lo20(sym_local_large)
74
117
# LTOABS-NEXT: lu52i.d $a0, $a0, %abs64_hi12(sym_local_large)
118
+
119
+ # RELOC-NEXT: R_LARCH_PCALA_HI20 sym_local_large 0x0
120
+ # RELOC-NEXT: R_LARCH_PCALA_LO12 sym_local_large 0x0
121
+ # RELOC-NEXT: R_LARCH_PCALA64_LO20 sym_local_large 0x0
122
+ # RELOC-NEXT: R_LARCH_PCALA64_HI12 sym_local_large 0x0
123
+
124
+
125
+ # RELOC-NEXT: }
126
+ # RELOC-NEXT: ]
0 commit comments