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