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 -arm-attributes - | FileCheck %s --check-prefix=CHECK-OBJ
4.eabi_attribute  Tag_CPU_arch, 2
5@CHECK:   .eabi_attribute 6, 2
6@CHECK-OBJ: Tag: 6
7@CHECK-OBJ-NEXT: Value: 2
8@CHECK-OBJ-NEXT: TagName: CPU_arch
9@CHECK-OBJ-NEXT: Description: ARM v4T
10
11.eabi_attribute  Tag_THUMB_ISA_use, 2
12@CHECK:   .eabi_attribute 9, 2
13@CHECK-OBJ: Tag: 9
14@CHECK-OBJ-NEXT: Value: 2
15@CHECK-OBJ-NEXT: TagName: THUMB_ISA_use
16@CHECK-OBJ-NEXT: Description: Thumb-2
17
18.eabi_attribute  Tag_FP_arch, 2
19@CHECK:   .eabi_attribute 10, 2
20@CHECK-OBJ: Tag: 10
21@CHECK-OBJ-NEXT: Value: 2
22@CHECK-OBJ-NEXT: TagName: FP_arch
23@CHECK-OBJ-NEXT: Description: VFPv2
24
25.eabi_attribute  Tag_WMMX_arch, 2
26@CHECK:   .eabi_attribute 11, 2
27@CHECK-OBJ: Tag: 11
28@CHECK-OBJ-NEXT: Value: 2
29@CHECK-OBJ-NEXT: TagName: WMMX_arch
30@CHECK-OBJ-NEXT: Description: WMMXv2
31
32.eabi_attribute  Tag_Advanced_SIMD_arch, 2
33@CHECK:   .eabi_attribute 12, 2
34@CHECK-OBJ: Tag: 12
35@CHECK-OBJ-NEXT: Value: 2
36@CHECK-OBJ-NEXT: TagName: Advanced_SIMD_arch
37@CHECK-OBJ-NEXT: Description: NEONv2+FMA
38
39.eabi_attribute  Tag_PCS_config, 2
40@CHECK:   .eabi_attribute 13, 2
41@CHECK-OBJ: Tag: 13
42@CHECK-OBJ-NEXT: Value: 2
43@CHECK-OBJ-NEXT: TagName: PCS_config
44@CHECK-OBJ-NEXT: Description: Linux Application
45
46.eabi_attribute  Tag_ABI_PCS_R9_use, 2
47@CHECK:   .eabi_attribute 14, 2
48@CHECK-OBJ: Tag: 14
49@CHECK-OBJ-NEXT: Value: 2
50@CHECK-OBJ-NEXT: TagName: ABI_PCS_R9_use
51@CHECK-OBJ-NEXT: Description: TLS
52
53.eabi_attribute  Tag_ABI_PCS_RW_data, 2
54@CHECK:   .eabi_attribute 15, 2
55@CHECK-OBJ: Tag: 15
56@CHECK-OBJ-NEXT: Value: 2
57@CHECK-OBJ-NEXT: TagName: ABI_PCS_RW_data
58@CHECK-OBJ-NEXT: Description: SB-relative
59
60.eabi_attribute  Tag_ABI_PCS_RO_data, 2
61@CHECK:   .eabi_attribute 16, 2
62@CHECK-OBJ: Tag: 16
63@CHECK-OBJ-NEXT: Value: 2
64@CHECK-OBJ-NEXT: TagName: ABI_PCS_RO_data
65@CHECK-OBJ-NEXT: Description: Not Permitted
66
67.eabi_attribute  Tag_ABI_PCS_GOT_use, 2
68@CHECK:   .eabi_attribute 17, 2
69@CHECK-OBJ: Tag: 17
70@CHECK-OBJ-NEXT: Value: 2
71@CHECK-OBJ-NEXT: TagName: ABI_PCS_GOT_use
72@CHECK-OBJ-NEXT: Description: GOT-Indirect
73
74.eabi_attribute  Tag_ABI_PCS_wchar_t, 2
75@CHECK:   .eabi_attribute 18, 2
76@CHECK-OBJ: Tag: 18
77@CHECK-OBJ-NEXT: Value: 2
78@CHECK-OBJ-NEXT: TagName: ABI_PCS_wchar_t
79@CHECK-OBJ-NEXT: Description: 2-byte
80
81.eabi_attribute  Tag_ABI_FP_denormal, 2
82@CHECK:   .eabi_attribute 20, 2
83@CHECK-OBJ: Tag: 20
84@CHECK-OBJ-NEXT: Value: 2
85@CHECK-OBJ-NEXT: TagName: ABI_FP_denormal
86@CHECK-OBJ-NEXT: Description: Sign Only
87
88.eabi_attribute  Tag_ABI_FP_number_model, 2
89@CHECK:   .eabi_attribute 23, 2
90@CHECK-OBJ: Tag: 23
91@CHECK-OBJ-NEXT: Value: 2
92@CHECK-OBJ-NEXT: TagName: ABI_FP_number_model
93@CHECK-OBJ-NEXT: Description: RTABI
94
95.eabi_attribute  Tag_ABI_align_needed, 2
96@CHECK:   .eabi_attribute 24, 2
97@CHECK-OBJ: Tag: 24
98@CHECK-OBJ-NEXT: Value: 2
99@CHECK-OBJ-NEXT: TagName: ABI_align_needed
100@CHECK-OBJ-NEXT: Description: 4-byte alignment
101
102.eabi_attribute  Tag_ABI_align_preserved, 2
103@CHECK:   .eabi_attribute 25, 2
104@CHECK-OBJ: Tag: 25
105@CHECK-OBJ-NEXT: Value: 2
106@CHECK-OBJ-NEXT: TagName: ABI_align_preserved
107@CHECK-OBJ-NEXT: Description: 8-byte data and code alignment
108
109.eabi_attribute  Tag_ABI_enum_size, 2
110@CHECK:   .eabi_attribute 26, 2
111@CHECK-OBJ: Tag: 26
112@CHECK-OBJ-NEXT: Value: 2
113@CHECK-OBJ-NEXT: TagName: ABI_enum_size
114@CHECK-OBJ-NEXT: Description: Int32
115
116.eabi_attribute  Tag_ABI_HardFP_use, 2
117@CHECK:   .eabi_attribute 27, 2
118@CHECK-OBJ: Tag: 27
119@CHECK-OBJ-NEXT: Value: 2
120@CHECK-OBJ-NEXT: TagName: ABI_HardFP_use
121@CHECK-OBJ-NEXT: Description: Reserved
122
123.eabi_attribute  Tag_ABI_VFP_args, 2
124@CHECK:   .eabi_attribute 28, 2
125@CHECK-OBJ: Tag: 28
126@CHECK-OBJ-NEXT: Value: 2
127@CHECK-OBJ-NEXT: TagName: ABI_VFP_args
128@CHECK-OBJ-NEXT: Description: Custom
129
130.eabi_attribute  Tag_ABI_WMMX_args, 2
131@CHECK:   .eabi_attribute 29, 2
132@CHECK-OBJ: Tag: 29
133@CHECK-OBJ-NEXT: Value: 2
134@CHECK-OBJ-NEXT: TagName: ABI_WMMX_args
135@CHECK-OBJ-NEXT: Description: Custom
136
137.eabi_attribute  Tag_ABI_optimization_goals, 2
138@CHECK:   .eabi_attribute 30, 2
139@CHECK-OBJ: Tag: 30
140@CHECK-OBJ-NEXT: Value: 2
141@CHECK-OBJ-NEXT: TagName: ABI_optimization_goals
142@CHECK-OBJ-NEXT: Description: Aggressive Speed
143
144.eabi_attribute  Tag_ABI_FP_optimization_goals, 2
145@CHECK:   .eabi_attribute 31, 2
146@CHECK-OBJ: Tag: 31
147@CHECK-OBJ-NEXT: Value: 2
148@CHECK-OBJ-NEXT: TagName: ABI_FP_optimization_goals
149@CHECK-OBJ-NEXT: Description: Aggressive Speed
150
151.eabi_attribute  Tag_compatibility, 2, ""
152@CHECK:   .eabi_attribute 32, 2
153@CHECK-OBJ: Tag: 32
154@CHECK-OBJ-NEXT: Value: 2,
155@CHECK-OBJ-NEXT: TagName: compatibility
156@CHECK-OBJ-NEXT: Description: AEABI Non-Conformant
157
158.eabi_attribute  Tag_ABI_FP_16bit_format, 2
159@CHECK:   .eabi_attribute 38, 2
160@CHECK-OBJ: Tag: 38
161@CHECK-OBJ-NEXT: Value: 2
162@CHECK-OBJ-NEXT: TagName: ABI_FP_16bit_format
163@CHECK-OBJ-NEXT: Description: VFPv3
164
165.eabi_attribute  Tag_DIV_use, 2
166@CHECK:   .eabi_attribute 44, 2
167@CHECK-OBJ: Tag: 44
168@CHECK-OBJ-NEXT: Value: 2
169@CHECK-OBJ-NEXT: TagName: DIV_use
170@CHECK-OBJ-NEXT: Description: Permitted
171
172.eabi_attribute  Tag_Virtualization_use, 2
173@CHECK:   .eabi_attribute 68, 2
174@CHECK-OBJ: Tag: 68
175@CHECK-OBJ-NEXT: Value: 2
176@CHECK-OBJ-NEXT: TagName: Virtualization_use
177@CHECK-OBJ-NEXT: Description: Virtualization Extensions
178
179