xref: /aosp_15_r20/external/llvm/test/MC/Mips/eh-frame.s (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker// Test the bits of .eh_frame on mips that are already implemented correctly.
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker// FIXME: This test would be a lot cleaner if llvm-objdump had the
4*9880d681SAndroid Build Coastguard Worker// --dwarf=frames option.
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Worker// RUN: llvm-mc -filetype=obj %s -o %t.o -arch=mips
7*9880d681SAndroid Build Coastguard Worker// RUN: llvm-objdump -r -s %t.o | FileCheck --check-prefix=MIPS32 %s
8*9880d681SAndroid Build Coastguard Worker
9*9880d681SAndroid Build Coastguard Worker// RUN: llvm-mc -filetype=obj %s -o %t.o -arch=mipsel
10*9880d681SAndroid Build Coastguard Worker// RUN: llvm-objdump -r -s %t.o | FileCheck --check-prefix=MIPS32EL %s
11*9880d681SAndroid Build Coastguard Worker
12*9880d681SAndroid Build Coastguard Worker// RUN: llvm-mc -filetype=obj %s -o %t.o -arch=mips64
13*9880d681SAndroid Build Coastguard Worker// RUN: llvm-objdump -r -s %t.o | FileCheck --check-prefix=MIPS64 %s
14*9880d681SAndroid Build Coastguard Worker
15*9880d681SAndroid Build Coastguard Worker// RUN: llvm-mc -filetype=obj %s -o %t.o -arch=mips64el
16*9880d681SAndroid Build Coastguard Worker// RUN: llvm-objdump -r -s %t.o | FileCheck --check-prefix=MIPS64EL %s
17*9880d681SAndroid Build Coastguard Worker
18*9880d681SAndroid Build Coastguard Workerfunc:
19*9880d681SAndroid Build Coastguard Worker	.cfi_startproc
20*9880d681SAndroid Build Coastguard Worker	.cfi_endproc
21*9880d681SAndroid Build Coastguard Worker
22*9880d681SAndroid Build Coastguard Worker// MIPS32: RELOCATION RECORDS FOR [.rel.eh_frame]:
23*9880d681SAndroid Build Coastguard Worker// MIPS32-NEXT: R_MIPS_32
24*9880d681SAndroid Build Coastguard Worker// MIPS32: Contents of section .eh_frame:
25*9880d681SAndroid Build Coastguard Worker// MIPS32-NEXT: 0000
26*9880d681SAndroid Build Coastguard Worker
27*9880d681SAndroid Build Coastguard Worker// Length
28*9880d681SAndroid Build Coastguard Worker// MIPS32: 00000010
29*9880d681SAndroid Build Coastguard Worker
30*9880d681SAndroid Build Coastguard Worker// CIE ID
31*9880d681SAndroid Build Coastguard Worker// MIPS32: 00000000
32*9880d681SAndroid Build Coastguard Worker
33*9880d681SAndroid Build Coastguard Worker// Version
34*9880d681SAndroid Build Coastguard Worker// MIPS32: 01
35*9880d681SAndroid Build Coastguard Worker
36*9880d681SAndroid Build Coastguard Worker// Augmentation String
37*9880d681SAndroid Build Coastguard Worker// MIPS32: 7a5200
38*9880d681SAndroid Build Coastguard Worker
39*9880d681SAndroid Build Coastguard Worker// Code Alignment Factor
40*9880d681SAndroid Build Coastguard Worker// MIPS32: 01
41*9880d681SAndroid Build Coastguard Worker
42*9880d681SAndroid Build Coastguard Worker// Data Alignment Factor (-4)
43*9880d681SAndroid Build Coastguard Worker// MIPS32: 7c
44*9880d681SAndroid Build Coastguard Worker
45*9880d681SAndroid Build Coastguard Worker// Return Address Register
46*9880d681SAndroid Build Coastguard Worker// MIPS32: 1f
47*9880d681SAndroid Build Coastguard Worker
48*9880d681SAndroid Build Coastguard Worker// Augmentation Size
49*9880d681SAndroid Build Coastguard Worker// MIPS32: 01
50*9880d681SAndroid Build Coastguard Worker
51*9880d681SAndroid Build Coastguard Worker// MIPS32: .........zR..|..
52*9880d681SAndroid Build Coastguard Worker// MIPS32-NEXT: 0010
53*9880d681SAndroid Build Coastguard Worker
54*9880d681SAndroid Build Coastguard Worker// Augmentation (fde pointer encoding: DW_EH_PE_sdata4)
55*9880d681SAndroid Build Coastguard Worker// MIPS32: 0b
56*9880d681SAndroid Build Coastguard Worker// FIXME: The instructions are different from the ones produces by gas.
57*9880d681SAndroid Build Coastguard Worker
58*9880d681SAndroid Build Coastguard Worker// MIPS32EL: RELOCATION RECORDS FOR [.rel.eh_frame]:
59*9880d681SAndroid Build Coastguard Worker// MIPS32EL-NEXT: R_MIPS_32
60*9880d681SAndroid Build Coastguard Worker// MIPS32EL: Contents of section .eh_frame:
61*9880d681SAndroid Build Coastguard Worker// MIPS32EL-NEXT: 0000
62*9880d681SAndroid Build Coastguard Worker
63*9880d681SAndroid Build Coastguard Worker// Length
64*9880d681SAndroid Build Coastguard Worker// MIPS32EL: 10000000
65*9880d681SAndroid Build Coastguard Worker
66*9880d681SAndroid Build Coastguard Worker// CIE ID
67*9880d681SAndroid Build Coastguard Worker// MIPS32EL: 00000000
68*9880d681SAndroid Build Coastguard Worker
69*9880d681SAndroid Build Coastguard Worker// Version
70*9880d681SAndroid Build Coastguard Worker// MIPS32EL: 01
71*9880d681SAndroid Build Coastguard Worker
72*9880d681SAndroid Build Coastguard Worker// Augmentation String
73*9880d681SAndroid Build Coastguard Worker// MIPS32EL: 7a5200
74*9880d681SAndroid Build Coastguard Worker
75*9880d681SAndroid Build Coastguard Worker// Code Alignment Factor
76*9880d681SAndroid Build Coastguard Worker// MIPS32EL: 01
77*9880d681SAndroid Build Coastguard Worker
78*9880d681SAndroid Build Coastguard Worker// Data Alignment Factor (-4)
79*9880d681SAndroid Build Coastguard Worker// MIPS32EL: 7c
80*9880d681SAndroid Build Coastguard Worker
81*9880d681SAndroid Build Coastguard Worker// Return Address Register
82*9880d681SAndroid Build Coastguard Worker// MIPS32EL: 1f
83*9880d681SAndroid Build Coastguard Worker
84*9880d681SAndroid Build Coastguard Worker// Augmentation Size
85*9880d681SAndroid Build Coastguard Worker// MIPS32EL: 01
86*9880d681SAndroid Build Coastguard Worker
87*9880d681SAndroid Build Coastguard Worker// MIPS32EL: .........zR..|..
88*9880d681SAndroid Build Coastguard Worker// MIPS32EL-NEXT: 0010
89*9880d681SAndroid Build Coastguard Worker
90*9880d681SAndroid Build Coastguard Worker// Augmentation (fde pointer encoding: DW_EH_PE_sdata4)
91*9880d681SAndroid Build Coastguard Worker// MIPS32EL: 0b
92*9880d681SAndroid Build Coastguard Worker// FIXME: The instructions are different from the ones produces by gas.
93*9880d681SAndroid Build Coastguard Worker
94*9880d681SAndroid Build Coastguard Worker// MIPS64: RELOCATION RECORDS FOR [.rela.eh_frame]:
95*9880d681SAndroid Build Coastguard Worker// MIPS64-NEXT: R_MIPS_64
96*9880d681SAndroid Build Coastguard Worker// MIPS64: Contents of section .eh_frame:
97*9880d681SAndroid Build Coastguard Worker// MIPS64-NEXT: 0000
98*9880d681SAndroid Build Coastguard Worker
99*9880d681SAndroid Build Coastguard Worker// Length
100*9880d681SAndroid Build Coastguard Worker// MIPS64: 00000010
101*9880d681SAndroid Build Coastguard Worker
102*9880d681SAndroid Build Coastguard Worker// CIE ID
103*9880d681SAndroid Build Coastguard Worker// MIPS64: 00000000
104*9880d681SAndroid Build Coastguard Worker
105*9880d681SAndroid Build Coastguard Worker// Version
106*9880d681SAndroid Build Coastguard Worker// MIPS64: 01
107*9880d681SAndroid Build Coastguard Worker
108*9880d681SAndroid Build Coastguard Worker// Augmentation String
109*9880d681SAndroid Build Coastguard Worker// MIPS64: 7a5200
110*9880d681SAndroid Build Coastguard Worker
111*9880d681SAndroid Build Coastguard Worker// Code Alignment Factor
112*9880d681SAndroid Build Coastguard Worker// MIPS64: 01
113*9880d681SAndroid Build Coastguard Worker
114*9880d681SAndroid Build Coastguard Worker// Data Alignment Factor (-8). GAS uses -4. Should be ok as long as all
115*9880d681SAndroid Build Coastguard Worker// offsets we need are a multiple of 8.
116*9880d681SAndroid Build Coastguard Worker// MIPS64: 78
117*9880d681SAndroid Build Coastguard Worker
118*9880d681SAndroid Build Coastguard Worker// Return Address Register
119*9880d681SAndroid Build Coastguard Worker// MIPS64: 1f
120*9880d681SAndroid Build Coastguard Worker
121*9880d681SAndroid Build Coastguard Worker// Augmentation Size
122*9880d681SAndroid Build Coastguard Worker// MIPS64: 01
123*9880d681SAndroid Build Coastguard Worker
124*9880d681SAndroid Build Coastguard Worker// MIPS64: .........zR..x..
125*9880d681SAndroid Build Coastguard Worker// MIPS64-NEXT: 0010
126*9880d681SAndroid Build Coastguard Worker
127*9880d681SAndroid Build Coastguard Worker// Augmentation (fde pointer encoding: DW_EH_PE_sdata8)
128*9880d681SAndroid Build Coastguard Worker// MIPS64: 0c
129*9880d681SAndroid Build Coastguard Worker// FIXME: The instructions are different from the ones produces by gas.
130*9880d681SAndroid Build Coastguard Worker
131*9880d681SAndroid Build Coastguard Worker
132*9880d681SAndroid Build Coastguard Worker// MIPS64EL: RELOCATION RECORDS FOR [.rela.eh_frame]:
133*9880d681SAndroid Build Coastguard Worker// MIPS64EL-NEXT: R_MIPS_64
134*9880d681SAndroid Build Coastguard Worker// MIPS64EL: Contents of section .eh_frame:
135*9880d681SAndroid Build Coastguard Worker// MIPS64EL-NEXT: 0000
136*9880d681SAndroid Build Coastguard Worker
137*9880d681SAndroid Build Coastguard Worker// Length
138*9880d681SAndroid Build Coastguard Worker// MIPS64EL: 10000000
139*9880d681SAndroid Build Coastguard Worker
140*9880d681SAndroid Build Coastguard Worker// CIE ID
141*9880d681SAndroid Build Coastguard Worker// MIPS64EL: 00000000
142*9880d681SAndroid Build Coastguard Worker
143*9880d681SAndroid Build Coastguard Worker// Version
144*9880d681SAndroid Build Coastguard Worker// MIPS64EL: 01
145*9880d681SAndroid Build Coastguard Worker
146*9880d681SAndroid Build Coastguard Worker// Augmentation String
147*9880d681SAndroid Build Coastguard Worker// MIPS64EL: 7a5200
148*9880d681SAndroid Build Coastguard Worker
149*9880d681SAndroid Build Coastguard Worker// Code Alignment Factor
150*9880d681SAndroid Build Coastguard Worker// MIPS64EL: 01
151*9880d681SAndroid Build Coastguard Worker
152*9880d681SAndroid Build Coastguard Worker// Data Alignment Factor (-8). GAS uses -4. Should be ok as long as all
153*9880d681SAndroid Build Coastguard Worker// offsets we need are a multiple of 8.
154*9880d681SAndroid Build Coastguard Worker// MIPS64EL: 78
155*9880d681SAndroid Build Coastguard Worker
156*9880d681SAndroid Build Coastguard Worker// Return Address Register
157*9880d681SAndroid Build Coastguard Worker// MIPS64EL: 1f
158*9880d681SAndroid Build Coastguard Worker
159*9880d681SAndroid Build Coastguard Worker// Augmentation Size
160*9880d681SAndroid Build Coastguard Worker// MIPS64EL: 01
161*9880d681SAndroid Build Coastguard Worker
162*9880d681SAndroid Build Coastguard Worker// MIPS64EL: .........zR..x..
163*9880d681SAndroid Build Coastguard Worker// MIPS64EL-NEXT: 0010
164*9880d681SAndroid Build Coastguard Worker
165*9880d681SAndroid Build Coastguard Worker// Augmentation (fde pointer encoding: DW_EH_PE_sdata8)
166*9880d681SAndroid Build Coastguard Worker// MIPS64EL: 0c
167*9880d681SAndroid Build Coastguard Worker// FIXME: The instructions are different from the ones produces by gas.
168