[Alignment][NFC] Instructions::getLoadStoreAlignment
[llvm-complete.git] / test / tools / obj2yaml / elf-mips-eflags.yaml
blob9306dbceefccd019451d5c9339d413be23f3078c
1 ## Check obj2yaml is able to decode all possible MIPS e_flags field values.
3 ## e_flags might keep both flags and regular values in a different bits.
4 ## Here we test all flags at once.
6 # RUN: yaml2obj --docnum=1 %s -o %t-non-flags
7 # RUN: obj2yaml %t-non-flags | FileCheck %s --check-prefix=FLAGS
9 # FLAGS: Flags: [ EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI2, EF_MIPS_32BITMODE, EF_MIPS_FP64, EF_MIPS_NAN2008, EF_MIPS_MICROMIPS, EF_MIPS_ARCH_ASE_M16, EF_MIPS_ARCH_ASE_MDMX, EF_MIPS_ARCH_1 ]
11 --- !ELF
12 FileHeader:
13   Class:   ELFCLASS32
14   Data:    ELFDATA2LSB
15   Type:    ET_REL
16   Machine: EM_MIPS
17   Flags: [ EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI2, EF_MIPS_32BITMODE,
18     EF_MIPS_FP64, EF_MIPS_NAN2008, EF_MIPS_MICROMIPS, EF_MIPS_ARCH_ASE_M16, EF_MIPS_ARCH_ASE_MDMX]
20 ## Test EF_MIPS_ABI values.
22 # RUN: yaml2obj --docnum=2 %s -o %t-abi-o32 
23 # RUN: obj2yaml %t-abi-o32 | FileCheck %s -DABI=EF_MIPS_ABI_O32 --check-prefix=ABI
24 # RUN: yaml2obj --docnum=3 %s -o %t-abi-o64 
25 # RUN: obj2yaml %t-abi-o64 | FileCheck -DABI=EF_MIPS_ABI_O64 %s --check-prefix=ABI
26 # RUN: yaml2obj --docnum=4 %s -o %t-eabi32
27 # RUN: obj2yaml %t-eabi32 | FileCheck -DABI=EF_MIPS_ABI_EABI32 %s --check-prefix=ABI
28 # RUN: yaml2obj --docnum=5 %s -o %t-eabi64
29 # RUN: obj2yaml %t-eabi64 | FileCheck -DABI=EF_MIPS_ABI_EABI64 %s --check-prefix=ABI
31 # ABI: Flags: [ [[ABI]], EF_MIPS_ARCH_1 ]
33 --- !ELF
34 FileHeader:
35   Class:   ELFCLASS32
36   Data:    ELFDATA2LSB
37   Type:    ET_REL
38   Machine: EM_MIPS
39   Flags: [ EF_MIPS_ABI_O32 ]
41 --- !ELF
42 FileHeader:
43   Class:   ELFCLASS32
44   Data:    ELFDATA2LSB
45   Type:    ET_REL
46   Machine: EM_MIPS
47   Flags: [ EF_MIPS_ABI_O64 ]
49 --- !ELF
50 FileHeader:
51   Class:   ELFCLASS32
52   Data:    ELFDATA2LSB
53   Type:    ET_REL
54   Machine: EM_MIPS
55   Flags: [ EF_MIPS_ABI_EABI32 ]
57 --- !ELF
58 FileHeader:
59   Class:   ELFCLASS32
60   Data:    ELFDATA2LSB
61   Type:    ET_REL
62   Machine: EM_MIPS
63   Flags: [ EF_MIPS_ABI_EABI64 ]
65 ## Test EF_MIPS_MACH values.
67 # RUN: yaml2obj --docnum=6 %s -o %t-mach-3900
68 # RUN: obj2yaml %t-mach-3900 | FileCheck %s -DMACH=EF_MIPS_MACH_3900 --check-prefix=MACH
69 # RUN: yaml2obj --docnum=7 %s -o %t-mach-4010
70 # RUN: obj2yaml %t-mach-4010 | FileCheck %s -DMACH=EF_MIPS_MACH_4010 --check-prefix=MACH
71 # RUN: yaml2obj --docnum=8 %s -o %t-mach-4100
72 # RUN: obj2yaml %t-mach-4100 | FileCheck %s -DMACH=EF_MIPS_MACH_4100 --check-prefix=MACH
73 # RUN: yaml2obj --docnum=9 %s -o %t-mach-4650
74 # RUN: obj2yaml %t-mach-4650 | FileCheck %s -DMACH=EF_MIPS_MACH_4650 --check-prefix=MACH
75 # RUN: yaml2obj --docnum=10 %s -o %t-mach-4120
76 # RUN: obj2yaml %t-mach-4120 | FileCheck %s -DMACH=EF_MIPS_MACH_4120 --check-prefix=MACH
77 # RUN: yaml2obj --docnum=11 %s -o %t-mach-4111
78 # RUN: obj2yaml %t-mach-4111 | FileCheck %s -DMACH=EF_MIPS_MACH_4111 --check-prefix=MACH
79 # RUN: yaml2obj --docnum=12 %s -o %t-mach-sb1
80 # RUN: obj2yaml %t-mach-sb1 | FileCheck %s -DMACH=EF_MIPS_MACH_SB1 --check-prefix=MACH
81 # RUN: yaml2obj --docnum=13 %s -o %t-mach-octeon
82 # RUN: obj2yaml %t-mach-octeon | FileCheck %s -DMACH=EF_MIPS_MACH_OCTEON --check-prefix=MACH
83 # RUN: yaml2obj --docnum=14 %s -o %t-mach-xlr
84 # RUN: obj2yaml %t-mach-xlr | FileCheck %s -DMACH=EF_MIPS_MACH_XLR --check-prefix=MACH
85 # RUN: yaml2obj --docnum=15 %s -o %t-mach-octeon2
86 # RUN: obj2yaml %t-mach-octeon2 | FileCheck %s -DMACH=EF_MIPS_MACH_OCTEON2 --check-prefix=MACH
87 # RUN: yaml2obj --docnum=16 %s -o %t-mach-octeon3
88 # RUN: obj2yaml %t-mach-octeon3 | FileCheck %s -DMACH=EF_MIPS_MACH_OCTEON3 --check-prefix=MACH
89 # RUN: yaml2obj --docnum=17 %s -o %t-mach-5400
90 # RUN: obj2yaml %t-mach-5400 | FileCheck %s -DMACH=EF_MIPS_MACH_5400 --check-prefix=MACH
91 # RUN: yaml2obj --docnum=18 %s -o %t-mach-5900
92 # RUN: obj2yaml %t-mach-5900 | FileCheck %s -DMACH=EF_MIPS_MACH_5900 --check-prefix=MACH
93 # RUN: yaml2obj --docnum=19 %s -o %t-mach-5500
94 # RUN: obj2yaml %t-mach-5500 | FileCheck %s -DMACH=EF_MIPS_MACH_5500 --check-prefix=MACH
95 # RUN: yaml2obj --docnum=20 %s -o %t-mach-9000
96 # RUN: obj2yaml %t-mach-9000 | FileCheck %s -DMACH=EF_MIPS_MACH_9000 --check-prefix=MACH
97 # RUN: yaml2obj --docnum=21 %s -o %t-mach-ls2e
98 # RUN: obj2yaml %t-mach-ls2e | FileCheck %s -DMACH=EF_MIPS_MACH_LS2E --check-prefix=MACH
99 # RUN: yaml2obj --docnum=22 %s -o %t-mach-ls2f
100 # RUN: obj2yaml %t-mach-ls2f | FileCheck %s -DMACH=EF_MIPS_MACH_LS2F --check-prefix=MACH
101 # RUN: yaml2obj --docnum=23 %s -o %t-mach-ls3a
102 # RUN: obj2yaml %t-mach-ls3a | FileCheck %s -DMACH=EF_MIPS_MACH_LS3A --check-prefix=MACH
104 # MACH: Flags: [ [[MACH]], EF_MIPS_ARCH_1 ]
106 --- !ELF
107 FileHeader:
108   Class:   ELFCLASS32
109   Data:    ELFDATA2LSB
110   Type:    ET_REL
111   Machine: EM_MIPS
112   Flags:   [ EF_MIPS_MACH_3900 ]
114 --- !ELF
115 FileHeader:
116   Class:   ELFCLASS32
117   Data:    ELFDATA2LSB
118   Type:    ET_REL
119   Machine: EM_MIPS
120   Flags:   [ EF_MIPS_MACH_4010 ]
122 --- !ELF
123 FileHeader:
124   Class:   ELFCLASS32
125   Data:    ELFDATA2LSB
126   Type:    ET_REL
127   Machine: EM_MIPS
128   Flags:   [ EF_MIPS_MACH_4100 ]
130 --- !ELF
131 FileHeader:
132   Class:   ELFCLASS32
133   Data:    ELFDATA2LSB
134   Type:    ET_REL
135   Machine: EM_MIPS
136   Flags:   [ EF_MIPS_MACH_4650 ]
138 --- !ELF
139 FileHeader:
140   Class:   ELFCLASS32
141   Data:    ELFDATA2LSB
142   Type:    ET_REL
143   Machine: EM_MIPS
144   Flags:   [ EF_MIPS_MACH_4120 ]
146 --- !ELF
147 FileHeader:
148   Class:   ELFCLASS32
149   Data:    ELFDATA2LSB
150   Type:    ET_REL
151   Machine: EM_MIPS
152   Flags:   [ EF_MIPS_MACH_4111 ]
154 --- !ELF
155 FileHeader:
156   Class:   ELFCLASS32
157   Data:    ELFDATA2LSB
158   Type:    ET_REL
159   Machine: EM_MIPS
160   Flags:   [ EF_MIPS_MACH_SB1 ]
162 --- !ELF
163 FileHeader:
164   Class:   ELFCLASS32
165   Data:    ELFDATA2LSB
166   Type:    ET_REL
167   Machine: EM_MIPS
168   Flags:   [ EF_MIPS_MACH_OCTEON ]
170 --- !ELF
171 FileHeader:
172   Class:   ELFCLASS32
173   Data:    ELFDATA2LSB
174   Type:    ET_REL
175   Machine: EM_MIPS
176   Flags:   [ EF_MIPS_MACH_XLR ]
178 --- !ELF
179 FileHeader:
180   Class:   ELFCLASS32
181   Data:    ELFDATA2LSB
182   Type:    ET_REL
183   Machine: EM_MIPS
184   Flags:   [ EF_MIPS_MACH_OCTEON2 ]
186 --- !ELF
187 FileHeader:
188   Class:   ELFCLASS32
189   Data:    ELFDATA2LSB
190   Type:    ET_REL
191   Machine: EM_MIPS
192   Flags:   [ EF_MIPS_MACH_OCTEON3 ]
194 --- !ELF
195 FileHeader:
196   Class:   ELFCLASS32
197   Data:    ELFDATA2LSB
198   Type:    ET_REL
199   Machine: EM_MIPS
200   Flags:   [ EF_MIPS_MACH_5400 ]
202 --- !ELF
203 FileHeader:
204   Class:   ELFCLASS32
205   Data:    ELFDATA2LSB
206   Type:    ET_REL
207   Machine: EM_MIPS
208   Flags:   [ EF_MIPS_MACH_5900 ]
210 --- !ELF
211 FileHeader:
212   Class:   ELFCLASS32
213   Data:    ELFDATA2LSB
214   Type:    ET_REL
215   Machine: EM_MIPS
216   Flags:   [ EF_MIPS_MACH_5500 ]
219 --- !ELF
220 FileHeader:
221   Class:   ELFCLASS32
222   Data:    ELFDATA2LSB
223   Type:    ET_REL
224   Machine: EM_MIPS
225   Flags:   [ EF_MIPS_MACH_9000 ]
227 --- !ELF
228 FileHeader:
229   Class:   ELFCLASS32
230   Data:    ELFDATA2LSB
231   Type:    ET_REL
232   Machine: EM_MIPS
233   Flags:   [ EF_MIPS_MACH_LS2E ]
235 --- !ELF
236 FileHeader:
237   Class:   ELFCLASS32
238   Data:    ELFDATA2LSB
239   Type:    ET_REL
240   Machine: EM_MIPS
241   Flags:   [ EF_MIPS_MACH_LS2F ]
243 --- !ELF
244 FileHeader:
245   Class:   ELFCLASS32
246   Data:    ELFDATA2LSB
247   Type:    ET_REL
248   Machine: EM_MIPS
249   Flags:   [ EF_MIPS_MACH_LS3A ]
251 ## Test EF_MIPS_ARCH values.
253 ## EF_MIPS_ARCH_1 has value = 0x0, so it does not show up in obj2yaml output,
254 ## when there are no other flags.
256 # RUN: yaml2obj --docnum=24 %s -o %t-arch-1a
257 # RUN: obj2yaml %t-arch-1a | FileCheck %s --check-prefix=ARCH-1
258 # RUN: yaml2obj --docnum=25 %s -o %t-arch-1b
259 # RUN: obj2yaml %t-arch-1b | FileCheck %s --check-prefix=ARCH-1
261 # ARCH-1-NOT: Flags:
263 --- !ELF
264 FileHeader:
265   Class:   ELFCLASS32
266   Data:    ELFDATA2LSB
267   Type:    ET_REL
268   Machine: EM_MIPS
269   Flags:   [ EF_MIPS_ARCH_1 ]
271 --- !ELF
272 FileHeader:
273   Class:   ELFCLASS32
274   Data:    ELFDATA2LSB
275   Type:    ET_REL
276   Machine: EM_MIPS
277   Flags:   [ ]
279 # RUN: yaml2obj --docnum=26 %s -o %t-arch-2
280 # RUN: obj2yaml %t-arch-2 | FileCheck %s -DARCH=EF_MIPS_ARCH_2 --check-prefix=ARCH
281 # RUN: yaml2obj --docnum=27 %s -o %t-arch-3
282 # RUN: obj2yaml %t-arch-3 | FileCheck %s -DARCH=EF_MIPS_ARCH_3 --check-prefix=ARCH
283 # RUN: yaml2obj --docnum=28 %s -o %t-arch-4
284 # RUN: obj2yaml %t-arch-4 | FileCheck %s -DARCH=EF_MIPS_ARCH_4 --check-prefix=ARCH
285 # RUN: yaml2obj --docnum=29 %s -o %t-arch-5
286 # RUN: obj2yaml %t-arch-5 | FileCheck %s -DARCH=EF_MIPS_ARCH_5 --check-prefix=ARCH
287 # RUN: yaml2obj --docnum=30 %s -o %t-arch-32
288 # RUN: obj2yaml %t-arch-32 | FileCheck %s -DARCH=EF_MIPS_ARCH_32 --check-prefix=ARCH
289 # RUN: yaml2obj --docnum=31 %s -o %t-arch-64
290 # RUN: obj2yaml %t-arch-64 | FileCheck %s -DARCH=EF_MIPS_ARCH_64 --check-prefix=ARCH
291 # RUN: yaml2obj --docnum=32 %s -o %t-arch-32r2
292 # RUN: obj2yaml %t-arch-32r2 | FileCheck %s -DARCH=EF_MIPS_ARCH_32R2 --check-prefix=ARCH
293 # RUN: yaml2obj --docnum=33 %s -o %t-arch-64r2
294 # RUN: obj2yaml %t-arch-64r2 | FileCheck %s -DARCH=EF_MIPS_ARCH_64R2 --check-prefix=ARCH
295 # RUN: yaml2obj --docnum=34 %s -o %t-arch-32r6
296 # RUN: obj2yaml %t-arch-32r6 | FileCheck %s -DARCH=EF_MIPS_ARCH_32R6 --check-prefix=ARCH
297 # RUN: yaml2obj --docnum=35 %s -o %t-arch-64r6
298 # RUN: obj2yaml %t-arch-64r6 | FileCheck %s -DARCH=EF_MIPS_ARCH_64R6 --check-prefix=ARCH
300 # ARCH: Flags: [ [[ARCH]] ]
302 --- !ELF
303 FileHeader:
304   Class:   ELFCLASS32
305   Data:    ELFDATA2LSB
306   Type:    ET_REL
307   Machine: EM_MIPS
308   Flags:   [ EF_MIPS_ARCH_2 ]
310 --- !ELF
311 FileHeader:
312   Class:   ELFCLASS32
313   Data:    ELFDATA2LSB
314   Type:    ET_REL
315   Machine: EM_MIPS
316   Flags:   [ EF_MIPS_ARCH_3 ]
318 --- !ELF
319 FileHeader:
320   Class:   ELFCLASS32
321   Data:    ELFDATA2LSB
322   Type:    ET_REL
323   Machine: EM_MIPS
324   Flags:   [ EF_MIPS_ARCH_4 ]
326 --- !ELF
327 FileHeader:
328   Class:   ELFCLASS32
329   Data:    ELFDATA2LSB
330   Type:    ET_REL
331   Machine: EM_MIPS
332   Flags:   [ EF_MIPS_ARCH_5 ]
334 --- !ELF
335 FileHeader:
336   Class:   ELFCLASS32
337   Data:    ELFDATA2LSB
338   Type:    ET_REL
339   Machine: EM_MIPS
340   Flags:   [ EF_MIPS_ARCH_32 ]
341   
342 --- !ELF
343 FileHeader:
344   Class:   ELFCLASS32
345   Data:    ELFDATA2LSB
346   Type:    ET_REL
347   Machine: EM_MIPS
348   Flags:   [ EF_MIPS_ARCH_64 ]
350 --- !ELF
351 FileHeader:
352   Class:   ELFCLASS32
353   Data:    ELFDATA2LSB
354   Type:    ET_REL
355   Machine: EM_MIPS
356   Flags:   [ EF_MIPS_ARCH_32R2 ]
358 --- !ELF
359 FileHeader:
360   Class:   ELFCLASS32
361   Data:    ELFDATA2LSB
362   Type:    ET_REL
363   Machine: EM_MIPS
364   Flags:   [ EF_MIPS_ARCH_64R2 ]
366 --- !ELF
367 FileHeader:
368   Class:   ELFCLASS32
369   Data:    ELFDATA2LSB
370   Type:    ET_REL
371   Machine: EM_MIPS
372   Flags:   [ EF_MIPS_ARCH_32R6 ]
374 --- !ELF
375 FileHeader:
376   Class:   ELFCLASS32
377   Data:    ELFDATA2LSB
378   Type:    ET_REL
379   Machine: EM_MIPS
380   Flags:   [ EF_MIPS_ARCH_64R6 ]