1@ RUN: llvm-mc -triple armv7-elf -filetype asm -o - %s | FileCheck %s
2@ RUN: llvm-mc -triple armv7-eabi -filetype obj -o - %s \
3@ RUN:   | llvm-readobj --arch-specific - | FileCheck %s --check-prefix=CHECK-OBJ
4.eabi_attribute  Tag_CPU_arch, 1
5@CHECK:   .eabi_attribute 6, 1
6@CHECK-OBJ: Tag: 6
7@CHECK-OBJ-NEXT: Value: 1
8@CHECK-OBJ-NEXT: TagName: CPU_arch
9@CHECK-OBJ-NEXT: Description: ARM v4
10
11.eabi_attribute  Tag_ARM_ISA_use, 1
12@CHECK:   .eabi_attribute 8, 1
13@CHECK-OBJ: Tag: 8
14@CHECK-OBJ-NEXT: Value: 1
15@CHECK-OBJ-NEXT: TagName: ARM_ISA_use
16@CHECK-OBJ-NEXT: Description: Permitted
17
18.eabi_attribute  Tag_THUMB_ISA_use, 1
19@CHECK:   .eabi_attribute 9, 1
20@CHECK-OBJ: Tag: 9
21@CHECK-OBJ-NEXT: Value: 1
22@CHECK-OBJ-NEXT: TagName: THUMB_ISA_use
23@CHECK-OBJ-NEXT: Description: Thumb-1
24
25.eabi_attribute  Tag_FP_arch, 1
26@CHECK:   .eabi_attribute 10, 1
27@CHECK-OBJ: Tag: 10
28@CHECK-OBJ-NEXT: Value: 1
29@CHECK-OBJ-NEXT: TagName: FP_arch
30@CHECK-OBJ-NEXT: Description: VFPv1
31
32.eabi_attribute  Tag_WMMX_arch, 1
33@CHECK:   .eabi_attribute 11, 1
34@CHECK-OBJ: Tag: 11
35@CHECK-OBJ-NEXT: Value: 1
36@CHECK-OBJ-NEXT: TagName: WMMX_arch
37@CHECK-OBJ-NEXT: Description: WMMXv1
38
39.eabi_attribute  Tag_Advanced_SIMD_arch, 1
40@CHECK:   .eabi_attribute 12, 1
41@CHECK-OBJ: Tag: 12
42@CHECK-OBJ-NEXT: Value: 1
43@CHECK-OBJ-NEXT: TagName: Advanced_SIMD_arch
44@CHECK-OBJ-NEXT: Description: NEONv1
45
46.eabi_attribute  Tag_PCS_config, 1
47@CHECK:   .eabi_attribute 13, 1
48@CHECK-OBJ: Tag: 13
49@CHECK-OBJ-NEXT: Value: 1
50@CHECK-OBJ-NEXT: TagName: PCS_config
51@CHECK-OBJ-NEXT: Description: Bare Platform
52
53.eabi_attribute  Tag_ABI_PCS_R9_use, 1
54@CHECK:   .eabi_attribute 14, 1
55@CHECK-OBJ: Tag: 14
56@CHECK-OBJ-NEXT: Value: 1
57@CHECK-OBJ-NEXT: TagName: ABI_PCS_R9_use
58@CHECK-OBJ-NEXT: Description: Static Base
59
60.eabi_attribute  Tag_ABI_PCS_RW_data, 1
61@CHECK:   .eabi_attribute 15, 1
62@CHECK-OBJ: Tag: 15
63@CHECK-OBJ-NEXT: Value: 1
64@CHECK-OBJ-NEXT: TagName: ABI_PCS_RW_data
65@CHECK-OBJ-NEXT: Description: PC-relative
66
67.eabi_attribute  Tag_ABI_PCS_RO_data, 1
68@CHECK:   .eabi_attribute 16, 1
69@CHECK-OBJ: Tag: 16
70@CHECK-OBJ-NEXT: Value: 1
71@CHECK-OBJ-NEXT: TagName: ABI_PCS_RO_data
72@CHECK-OBJ-NEXT: Description: PC-relative
73
74.eabi_attribute  Tag_ABI_PCS_GOT_use, 1
75@CHECK:   .eabi_attribute 17, 1
76@CHECK-OBJ: Tag: 17
77@CHECK-OBJ-NEXT: Value: 1
78@CHECK-OBJ-NEXT: TagName: ABI_PCS_GOT_use
79@CHECK-OBJ-NEXT: Description: Direct
80
81.eabi_attribute  Tag_ABI_FP_rounding, 1
82@CHECK:   .eabi_attribute 19, 1
83@CHECK-OBJ: Tag: 19
84@CHECK-OBJ-NEXT: Value: 1
85@CHECK-OBJ-NEXT: TagName: ABI_FP_rounding
86@CHECK-OBJ-NEXT: Description: Runtime
87
88.eabi_attribute  Tag_ABI_FP_denormal, 1
89@CHECK:   .eabi_attribute 20, 1
90@CHECK-OBJ: Tag: 20
91@CHECK-OBJ-NEXT: Value: 1
92@CHECK-OBJ-NEXT: TagName: ABI_FP_denormal
93@CHECK-OBJ-NEXT: Description: IEEE-754
94
95.eabi_attribute  Tag_ABI_FP_exceptions, 1
96@CHECK:   .eabi_attribute 21, 1
97@CHECK-OBJ: Tag: 21
98@CHECK-OBJ-NEXT: Value: 1
99@CHECK-OBJ-NEXT: TagName: ABI_FP_exceptions
100@CHECK-OBJ-NEXT: Description: IEEE-754
101
102.eabi_attribute  Tag_ABI_FP_user_exceptions, 1
103@CHECK:   .eabi_attribute 22, 1
104@CHECK-OBJ: Tag: 22
105@CHECK-OBJ-NEXT: Value: 1
106@CHECK-OBJ-NEXT: TagName: ABI_FP_user_exceptions
107@CHECK-OBJ-NEXT: Description: IEEE-754
108
109.eabi_attribute  Tag_ABI_FP_number_model, 1
110@CHECK:   .eabi_attribute 23, 1
111@CHECK-OBJ: Tag: 23
112@CHECK-OBJ-NEXT: Value: 1
113@CHECK-OBJ-NEXT: TagName: ABI_FP_number_model
114@CHECK-OBJ-NEXT: Description: Finite Only
115
116.eabi_attribute  Tag_ABI_align_needed, 1
117@CHECK:   .eabi_attribute 24, 1
118@CHECK-OBJ: Tag: 24
119@CHECK-OBJ-NEXT: Value: 1
120@CHECK-OBJ-NEXT: TagName: ABI_align_needed
121@CHECK-OBJ-NEXT: Description: 8-byte alignment
122
123.eabi_attribute  Tag_ABI_align_preserved, 1
124@CHECK:   .eabi_attribute 25, 1
125@CHECK-OBJ: Tag: 25
126@CHECK-OBJ-NEXT: Value: 1
127@CHECK-OBJ-NEXT: TagName: ABI_align_preserved
128@CHECK-OBJ-NEXT: Description: 8-byte data alignment
129
130.eabi_attribute  Tag_ABI_enum_size, 1
131@CHECK:   .eabi_attribute 26, 1
132@CHECK-OBJ: Tag: 26
133@CHECK-OBJ-NEXT: Value: 1
134@CHECK-OBJ-NEXT: TagName: ABI_enum_size
135@CHECK-OBJ-NEXT: Description: Packed
136
137.eabi_attribute  Tag_ABI_HardFP_use, 1
138@CHECK:   .eabi_attribute 27, 1
139@CHECK-OBJ: Tag: 27
140@CHECK-OBJ-NEXT: Value: 1
141@CHECK-OBJ-NEXT: TagName: ABI_HardFP_use
142@CHECK-OBJ-NEXT: Description: Single-Precision
143
144.eabi_attribute  Tag_ABI_VFP_args, 1
145@CHECK:   .eabi_attribute 28, 1
146@CHECK-OBJ: Tag: 28
147@CHECK-OBJ-NEXT: Value: 1
148@CHECK-OBJ-NEXT: TagName: ABI_VFP_args
149@CHECK-OBJ-NEXT: Description: AAPCS VFP
150
151.eabi_attribute  Tag_ABI_WMMX_args, 1
152@CHECK:   .eabi_attribute 29, 1
153@CHECK-OBJ: Tag: 29
154@CHECK-OBJ-NEXT: Value: 1
155@CHECK-OBJ-NEXT: TagName: ABI_WMMX_args
156@CHECK-OBJ-NEXT: Description: iWMMX
157
158.eabi_attribute  Tag_ABI_optimization_goals, 1
159@CHECK:   .eabi_attribute 30, 1
160@CHECK-OBJ: Tag: 30
161@CHECK-OBJ-NEXT: Value: 1
162@CHECK-OBJ-NEXT: TagName: ABI_optimization_goals
163@CHECK-OBJ-NEXT: Description: Speed
164
165.eabi_attribute  Tag_ABI_FP_optimization_goals, 1
166@CHECK:   .eabi_attribute 31, 1
167@CHECK-OBJ: Tag: 31
168@CHECK-OBJ-NEXT: Value: 1
169@CHECK-OBJ-NEXT: TagName: ABI_FP_optimization_goals
170@CHECK-OBJ-NEXT: Description: Speed
171
172.eabi_attribute  Tag_compatibility, 1, ""
173@CHECK:   .eabi_attribute 32, 1
174@CHECK-OBJ: Tag: 32
175@CHECK-OBJ-NEXT: Value: 1,
176@CHECK-OBJ-NEXT: TagName: compatibility
177@CHECK-OBJ-NEXT: Description: AEABI Conformant
178
179.eabi_attribute  Tag_CPU_unaligned_access, 1
180@CHECK:   .eabi_attribute 34, 1
181@CHECK-OBJ: Tag: 34
182@CHECK-OBJ-NEXT: Value: 1
183@CHECK-OBJ-NEXT: TagName: CPU_unaligned_access
184@CHECK-OBJ-NEXT: Description: v6-style
185
186.eabi_attribute  Tag_FP_HP_extension, 1
187@CHECK:   .eabi_attribute 36, 1
188@CHECK-OBJ: Tag: 36
189@CHECK-OBJ-NEXT: Value: 1
190@CHECK-OBJ-NEXT: TagName: FP_HP_extension
191@CHECK-OBJ-NEXT: Description: Permitted
192
193.eabi_attribute  Tag_ABI_FP_16bit_format, 1
194@CHECK:   .eabi_attribute 38, 1
195@CHECK-OBJ: Tag: 38
196@CHECK-OBJ-NEXT: Value: 1
197@CHECK-OBJ-NEXT: TagName: ABI_FP_16bit_format
198@CHECK-OBJ-NEXT: Description: IEEE-754
199
200.eabi_attribute  Tag_MPextension_use, 1
201@CHECK:   .eabi_attribute 42, 1
202@CHECK-OBJ: Tag: 42
203@CHECK-OBJ-NEXT: Value: 1
204@CHECK-OBJ-NEXT: TagName: MPextension_use
205@CHECK-OBJ-NEXT: Description: Permitted
206
207.eabi_attribute  Tag_DIV_use, 1
208@CHECK:   .eabi_attribute 44, 1
209@CHECK-OBJ: Tag: 44
210@CHECK-OBJ-NEXT: Value: 1
211@CHECK-OBJ-NEXT: TagName: DIV_use
212@CHECK-OBJ-NEXT: Description: Not Permitted
213
214.eabi_attribute  Tag_DSP_extension, 1
215@CHECK:   .eabi_attribute 46, 1
216@CHECK-OBJ: Tag: 46
217@CHECK-OBJ-NEXT: Value: 1
218@CHECK-OBJ-NEXT: TagName: DSP_extension
219@CHECK-OBJ-NEXT: Description: Permitted
220
221.eabi_attribute  Tag_Virtualization_use, 1
222@CHECK:   .eabi_attribute 68, 1
223@CHECK-OBJ: Tag: 68
224@CHECK-OBJ-NEXT: Value: 1
225@CHECK-OBJ-NEXT: TagName: Virtualization_use
226@CHECK-OBJ-NEXT: Description: TrustZone
227
228