1 @ RUN
: llvm-mc
-triple armv7-elf
-filetype asm
-o
- %s | FileCheck
%s
2 @ RUN
: llvm-mc
< %s
-triple armv7-unknown-linux-gnueabi
-filetype
=obj
-o
- \
3 @ RUN
: | llvm-readobj
--arm-attributes | FileCheck
%s
--check-prefix
=CHECK-OBJ
8 .eabi_attribute Tag_conformance, "2.09"
9 @ CHECK
: .eabi_attribute 67, "2.09"
10 @ Tag_conformance should
be be emitted first in
a file-scope
11 @ sub-subsection of the first public subsection of the attributes
12 @ section.
2.3.7.4 of ABI Addenda.
14 @ CHECK-OBJ-NEXT
: TagName
: conformance
15 @ CHECK-OBJ-NEXT
: Value
: 2.09
16 .eabi_attribute Tag_CPU_raw_name, "Cortex-A9"
17 @ CHECK
: .eabi_attribute 4, "Cortex-A9"
19 @ CHECK-OBJ-NEXT
: TagName
: CPU_raw_name
20 @ CHECK-OBJ-NEXT
: Value
: Cortex-A9
21 .eabi_attribute Tag_CPU_name, "cortex-a9"
22 @ CHECK
: .cpu cortex-a9
24 @ CHECK-OBJ-NEXT
: TagName
: CPU_name
25 @ CHECK-OBJ-NEXT
: Value
: cortex-a9
26 .eabi_attribute Tag_CPU_arch, 10
27 @ CHECK
: .eabi_attribute 6, 10
29 @ CHECK-OBJ-NEXT
: Value
: 10
30 @ CHECK-OBJ-NEXT
: TagName
: CPU_arch
31 @ CHECK-OBJ-NEXT
: Description
: ARM v7
32 .eabi_attribute Tag_CPU_arch_profile, 'A'
33 @ CHECK
: .eabi_attribute 7, 65
35 @ CHECK-OBJ-NEXT
: Value
: 65
36 @ CHECK-OBJ-NEXT
: TagName
: CPU_arch_profile
37 @ CHECK-OBJ-NEXT
: Description
: Application
38 .eabi_attribute Tag_ARM_ISA_use, 0
39 @ CHECK
: .eabi_attribute 8, 0
41 @ CHECK-OBJ-NEXT
: Value
: 0
42 @ CHECK-OBJ-NEXT
: TagName
: ARM_ISA_use
43 @ CHECK-OBJ-NEXT
: Description
: Not Permitted
44 .eabi_attribute Tag_THUMB_ISA_use, 2
45 @ CHECK
: .eabi_attribute 9, 2
47 @ CHECK-OBJ-NEXT
: Value
: 2
48 @ CHECK-OBJ-NEXT
: TagName
: THUMB_ISA_use
49 @ CHECK-OBJ-NEXT
: Description
: Thumb-
2
50 .eabi_attribute Tag_FP_arch, 3
51 @ CHECK
: .eabi_attribute 10, 3
53 @ CHECK-OBJ-NEXT
: Value
: 3
54 @ CHECK-OBJ-NEXT
: TagName
: FP_arch
55 @ CHECK-OBJ-NEXT
: Description
: VFPv3
56 .eabi_attribute Tag_WMMX_arch, 0
57 @ CHECK
: .eabi_attribute 11, 0
59 @ CHECK-OBJ-NEXT
: Value
: 0
60 @ CHECK-OBJ-NEXT
: TagName
: WMMX_arch
61 @ CHECK-OBJ-NEXT
: Description
: Not Permitted
62 .eabi_attribute Tag_Advanced_SIMD_arch, 1
63 @ CHECK
: .eabi_attribute 12, 1
65 @ CHECK-OBJ-NEXT
: Value
: 1
66 @ CHECK-OBJ-NEXT
: TagName
: Advanced_SIMD_arch
67 @ CHECK-OBJ-NEXT
: Description
: NEONv1
68 .eabi_attribute Tag_PCS_config, 2
69 @ CHECK
: .eabi_attribute 13, 2
71 @ CHECK-OBJ-NEXT
: Value
: 2
72 @ CHECK-OBJ-NEXT
: TagName
: PCS_config
73 @ CHECK-OBJ-NEXT
: Description
: Linux Application
74 .eabi_attribute Tag_ABI_PCS_R9_use, 0
75 @ CHECK
: .eabi_attribute 14, 0
77 @ CHECK-OBJ-NEXT
: Value
: 0
78 @ CHECK-OBJ-NEXT
: TagName
: ABI_PCS_R9_use
79 @ CHECK-OBJ-NEXT
: Description
: v6
80 .eabi_attribute Tag_ABI_PCS_RW_data, 0
81 @ CHECK
: .eabi_attribute 15, 0
83 @ CHECK-OBJ-NEXT
: Value
: 0
84 @ CHECK-OBJ-NEXT
: TagName
: ABI_PCS_RW_data
85 @ CHECK-OBJ-NEXT
: Description
: Absolute
86 .eabi_attribute Tag_ABI_PCS_RO_data, 0
87 @ CHECK
: .eabi_attribute 16, 0
89 @ CHECK-OBJ-NEXT
: Value
: 0
90 @ CHECK-OBJ-NEXT
: TagName
: ABI_PCS_RO_data
91 @ CHECK-OBJ-NEXT
: Description
: Absolute
92 .eabi_attribute Tag_ABI_PCS_GOT_use, 0
93 @ CHECK
: .eabi_attribute 17, 0
95 @ CHECK-OBJ-NEXT
: Value
: 0
96 @ CHECK-OBJ-NEXT
: TagName
: ABI_PCS_GOT_use
97 @ CHECK-OBJ-NEXT
: Description
: Not Permitted
98 .eabi_attribute Tag_ABI_PCS_wchar_t, 4
99 @ CHECK
: .eabi_attribute 18, 4
101 @ CHECK-OBJ-NEXT
: Value
: 4
102 @ CHECK-OBJ-NEXT
: TagName
: ABI_PCS_wchar_t
103 @ CHECK-OBJ-NEXT
: Description
: 4-byte
104 .eabi_attribute Tag_ABI_FP_rounding, 1
105 @ CHECK
: .eabi_attribute 19, 1
107 @ CHECK-OBJ-NEXT
: Value
: 1
108 @ CHECK-OBJ-NEXT
: TagName
: ABI_FP_rounding
109 @ CHECK-OBJ-NEXT
: Description
: Runtime
110 .eabi_attribute Tag_ABI_FP_denormal, 2
111 @ CHECK
: .eabi_attribute 20, 2
113 @ CHECK-OBJ-NEXT
: Value
: 2
114 @ CHECK-OBJ-NEXT
: TagName
: ABI_FP_denormal
115 @ CHECK-OBJ-NEXT
: Description
: Sign Only
116 .eabi_attribute Tag_ABI_FP_exceptions, 1
117 @ CHECK
: .eabi_attribute 21, 1
119 @ CHECK-OBJ-NEXT
: Value
: 1
120 @ CHECK-OBJ-NEXT
: TagName
: ABI_FP_exceptions
121 @ CHECK-OBJ-NEXT
: Description
: IEEE-
754
122 .eabi_attribute Tag_ABI_FP_user_exceptions, 1
123 @ CHECK
: .eabi_attribute 22, 1
125 @ CHECK-OBJ-NEXT
: Value
: 1
126 @ CHECK-OBJ-NEXT
: TagName
: ABI_FP_user_exceptions
127 @ CHECK-OBJ-NEXT
: Description
: IEEE-
754
128 .eabi_attribute Tag_ABI_FP_number_model, 3
129 @ CHECK
: .eabi_attribute 23, 3
131 @ CHECK-OBJ-NEXT
: Value
: 3
132 @ CHECK-OBJ-NEXT
: TagName
: ABI_FP_number_model
133 @ CHECK-OBJ-NEXT
: Description
: IEEE-
754
134 .eabi_attribute Tag_ABI_align_needed, 1
135 @ CHECK
: .eabi_attribute 24, 1
137 @ CHECK-OBJ-NEXT
: Value
: 1
138 @ CHECK-OBJ-NEXT
: TagName
: ABI_align_needed
139 @ CHECK-OBJ-NEXT
: Description
: 8-byte alignment
140 .eabi_attribute Tag_ABI_align_preserved, 2
141 @ CHECK
: .eabi_attribute 25, 2
143 @ CHECK-OBJ-NEXT
: Value
: 2
144 @ CHECK-OBJ-NEXT
: TagName
: ABI_align_preserved
145 @ CHECK-OBJ-NEXT
: Description
: 8-byte data
and code alignment
146 .eabi_attribute Tag_ABI_enum_size, 3
147 @ CHECK
: .eabi_attribute 26, 3
149 @ CHECK-OBJ-NEXT
: Value
: 3
150 @ CHECK-OBJ-NEXT
: TagName
: ABI_enum_size
151 @ CHECK-OBJ-NEXT
: Description
: External Int32
152 .eabi_attribute Tag_ABI_HardFP_use, 0
153 @ CHECK
: .eabi_attribute 27, 0
155 @ CHECK-OBJ-NEXT
: Value
: 0
156 @ CHECK-OBJ-NEXT
: TagName
: ABI_HardFP_use
157 @ CHECK-OBJ-NEXT
: Description
: Tag_FP_arch
158 .eabi_attribute Tag_ABI_VFP_args, 1
159 @ CHECK
: .eabi_attribute 28, 1
161 @ CHECK-OBJ-NEXT
: Value
: 1
162 @ CHECK-OBJ-NEXT
: TagName
: ABI_VFP_args
163 @ CHECK-OBJ-NEXT
: Description
: AAPCS VFP
164 .eabi_attribute Tag_ABI_WMMX_args, 0
165 @ CHECK
: .eabi_attribute 29, 0
167 @ CHECK-OBJ-NEXT
: Value
: 0
168 @ CHECK-OBJ-NEXT
: TagName
: ABI_WMMX_args
169 @ CHECK-OBJ-NEXT
: Description
: AAPCS
170 .eabi_attribute Tag_ABI_FP_optimization_goals, 1
171 @ CHECK
: .eabi_attribute 31, 1
173 @ CHECK-OBJ-NEXT
: Value
: 1
174 @ CHECK-OBJ-NEXT
: TagName
: ABI_FP_optimization_goals
175 @ CHECK-OBJ-NEXT
: Description
: Speed
176 .eabi_attribute Tag_compatibility, 1, "aeabi"
177 @ CHECK
: .eabi_attribute 32, 1, "aeabi"
179 @ CHECK-OBJ-NEXT
: Value
: 1, aeabi
180 @ CHECK-OBJ-NEXT
: TagName
: compatibility
181 @ CHECK-OBJ-NEXT
: Description
: AEABI Conformant
182 .eabi_attribute Tag_CPU_unaligned_access, 0
183 @ CHECK
: .eabi_attribute 34, 0
185 @ CHECK-OBJ-NEXT
: Value
: 0
186 @ CHECK-OBJ-NEXT
: TagName
: CPU_unaligned_access
187 @ CHECK-OBJ-NEXT
: Description
: Not Permitted
188 .eabi_attribute Tag_FP_HP_extension, 0
189 @ CHECK
: .eabi_attribute 36, 0
191 @ CHECK-OBJ-NEXT
: Value
: 0
192 @ CHECK-OBJ-NEXT
: TagName
: FP_HP_extension
193 @ CHECK-OBJ-NEXT
: Description
: If Available
194 .eabi_attribute Tag_ABI_FP_16bit_format, 0
195 @ CHECK
: .eabi_attribute 38, 0
197 @ CHECK-OBJ-NEXT
: Value
: 0
198 @ CHECK-OBJ-NEXT
: TagName
: ABI_FP_16bit_format
199 @ CHECK-OBJ-NEXT
: Description
: Not Permitte
200 .eabi_attribute Tag_MPextension_use, 0
201 @ CHECK
: .eabi_attribute 42, 0
203 @ CHECK-OBJ-NEXT
: Value
: 0
204 @ CHECK-OBJ-NEXT
: TagName
: MPextension_use
205 @ CHECK-OBJ-NEXT
: Description
: Not Permitted
206 .eabi_attribute Tag_DIV_use, 0
207 @ CHECK
: .eabi_attribute 44, 0
209 @ CHECK-OBJ-NEXT
: Value
: 0
210 @ CHECK-OBJ-NEXT
: TagName
: DIV_use
211 @ CHECK-OBJ-NEXT
: Description
: If Available
212 .eabi_attribute Tag_DSP_extension, 0
213 @ CHECK
: .eabi_attribute 46, 0
215 @ CHECK-OBJ-NEXT
: Value
: 0
216 @ CHECK-OBJ-NEXT
: TagName
: DSP_extension
217 @ CHECK-OBJ-NEXT
: Description
: Not Permitted
218 .eabi_attribute Tag_nodefaults, 0
219 @ CHECK
: .eabi_attribute 64, 0
221 @ CHECK-OBJ-NEXT
: Value
: 0
222 @ CHECK-OBJ-NEXT
: TagName
: nodefaults
223 @ CHECK-OBJ-NEXT
: Description
: Unspecified Tags UNDEFINED
224 .eabi_attribute Tag_also_compatible_with, "gnu"
225 @ CHECK
: .eabi_attribute 65, "gnu"
227 @ CHECK-OBJ-NEXT
: TagName
: also_compatible_with
228 @ CHECK-OBJ-NEXT
: Value
: gnu
229 .eabi_attribute Tag_T2EE_use, 0
230 @ CHECK
: .eabi_attribute 66, 0
232 @ CHECK-OBJ-NEXT
: Value
: 0
233 @ CHECK-OBJ-NEXT
: TagName
: T2EE_use
234 @ CHECK-OBJ-NEXT
: Description
: Not Permitted
235 .eabi_attribute Tag_Virtualization_use, 0
236 @ CHECK
: .eabi_attribute 68, 0
238 @ CHECK-OBJ-NEXT
: Value
: 0
239 @ CHECK-OBJ-NEXT
: TagName
: Virtualization_use
240 @ CHECK-OBJ-NEXT
: Description
: Not Permitted
242 @
===--- Compatibility Checks
---===
244 .eabi_attribute Tag_ABI_align8_needed, 1
245 @ CHECK
: .eabi_attribute 24, 1
246 .eabi_attribute Tag_ABI_align8_preserved, 2
247 @ CHECK
: .eabi_attribute 25, 2
249 @
===--- GNU AS Compatibility Checks
---===
251 .eabi_attribute 2 * 2 + 1, "cortex-a9"
252 @ CHECK
: .cpu cortex-a9
253 .eabi_attribute 2 * 2 + 2, 5 * 2
254 @ CHECK
: .eabi_attribute 6, 10