2 // RUN
: llvm-mc
-filetype
=obj
-triple
=armv7a-none-linux-gnueabi
%S
/Inputs
/arm-attributes1.s
-o
%t1.o
3 // RUN
: llvm-mc
-filetype
=obj
-triple
=armv7a-none-linux-gnueabi
%s
-o
%t2.o
5 // RUN
: ld.lld
%t1.o
%t2.o
-o
%t
6 // RUN
: llvm-readobj
--arch-specific
%t | FileCheck
%s
7 // RUN
: ld.lld
%t1.o
%t2.o
-shared
-o
%t2
8 // RUN
: llvm-readobj
--arch-specific
%t2 | FileCheck
%s
9 // RUN
: ld.lld
%t1.o
%t2.o
-r
-o
%t3
10 // RUN
: llvm-readobj
--arch-specific
%t3 | FileCheck
%s
12 // Check that we retain only
1 SHT_ARM_ATTRIBUTES section. At present we do
not
13 // try
and merge
or use the contents of SHT_ARM_ATTRIBUTES sections. We just
14 // pass the first one through.
17 .eabi_attribute 67, "2.09" @ Tag_conformance
19 .eabi_attribute 6, 10 @ Tag_CPU_arch
20 .eabi_attribute 7, 65 @ Tag_CPU_arch_profile
21 .eabi_attribute 8, 1 @ Tag_ARM_ISA_use
22 .eabi_attribute 9, 2 @ Tag_THUMB_ISA_use
24 .eabi_attribute 15, 1 @ Tag_ABI_PCS_RW_data
25 .eabi_attribute 16, 1 @ Tag_ABI_PCS_RO_data
26 .eabi_attribute 17, 2 @ Tag_ABI_PCS_GOT_use
27 .eabi_attribute 20, 1 @ Tag_ABI_FP_denormal
28 .eabi_attribute 21, 1 @ Tag_ABI_FP_exceptions
29 .eabi_attribute 23, 3 @ Tag_ABI_FP_number_model
30 .eabi_attribute 34, 1 @ Tag_CPU_unaligned_access
31 .eabi_attribute 24, 1 @ Tag_ABI_align_needed
32 .eabi_attribute 25, 1 @ Tag_ABI_align_preserved
33 .eabi_attribute 38, 1 @ Tag_ABI_FP_16bit_format
34 .eabi_attribute 18, 4 @ Tag_ABI_PCS_wchar_t
35 .eabi_attribute 26, 2 @ Tag_ABI_enum_size
36 .eabi_attribute 14, 0 @ Tag_ABI_PCS_R9_use
37 .eabi_attribute 68, 1 @ Tag_Virtualization_use
40 .type _start,%function
46 // CHECK
: BuildAttributes
{
47 // CHECK-NEXT
: FormatVersion
: 0x41
48 // CHECK-NEXT
: Section
1 {
49 // CHECK-NEXT
: SectionLength
: 72
50 // CHECK-NEXT
: Vendor
: aeabi
51 // CHECK-NEXT
: Tag
: Tag_File
(0x1)
52 // CHECK-NEXT
: Size
: 62
53 // CHECK-NEXT
: FileAttributes
{
54 // CHECK-NEXT
: Attribute
{
55 // CHECK-NEXT
: Tag
: 67
56 // CHECK-NEXT
: TagName
: conformance
57 // CHECK-NEXT
: Value
: 2.09
59 // CHECK-NEXT
: Attribute
{
61 // CHECK-NEXT
: TagName
: CPU_name
62 // CHECK-NEXT
: Value
: cortex-a8
64 // CHECK-NEXT
: Attribute
{
66 // CHECK-NEXT
: Value
: 10
67 // CHECK-NEXT
: TagName
: CPU_arch
68 // CHECK-NEXT
: Description
: ARM v7
70 // CHECK-NEXT
: Attribute
{
72 // CHECK-NEXT
: Value
: 65
73 // CHECK-NEXT
: TagName
: CPU_arch_profile
74 // CHECK-NEXT
: Description
: Application
76 // CHECK-NEXT
: Attribute
{
78 // CHECK-NEXT
: Value
: 1
79 // CHECK-NEXT
: TagName
: ARM_ISA_use
80 // CHECK-NEXT
: Description
: Permitted
82 // CHECK-NEXT
: Attribute
{
84 // CHECK-NEXT
: Value
: 2
85 // CHECK-NEXT
: TagName
: THUMB_ISA_use
86 // CHECK-NEXT
: Description
: Thumb-
2
88 // CHECK-NEXT
: Attribute
{
89 // CHECK-NEXT
: Tag
: 10
90 // CHECK-NEXT
: Value
: 3
91 // CHECK-NEXT
: TagName
: FP_arch
92 // CHECK-NEXT
: Description
: VFPv3
94 // CHECK-NEXT
: Attribute
{
95 // CHECK-NEXT
: Tag
: 12
96 // CHECK-NEXT
: Value
: 1
97 // CHECK-NEXT
: TagName
: Advanced_SIMD_arch
98 // CHECK-NEXT
: Description
: NEONv1
100 // CHECK-NEXT
: Attribute
{
101 // CHECK-NEXT
: Tag
: 14
102 // CHECK-NEXT
: Value
: 0
103 // CHECK-NEXT
: TagName
: ABI_PCS_R9_use
104 // CHECK-NEXT
: Description
: v6
106 // CHECK-NEXT
: Attribute
{
107 // CHECK-NEXT
: Tag
: 15
108 // CHECK-NEXT
: Value
: 1
109 // CHECK-NEXT
: TagName
: ABI_PCS_RW_data
110 // CHECK-NEXT
: Description
: PC-relative
112 // CHECK-NEXT
: Attribute
{
113 // CHECK-NEXT
: Tag
: 16
114 // CHECK-NEXT
: Value
: 1
115 // CHECK-NEXT
: TagName
: ABI_PCS_RO_data
116 // CHECK-NEXT
: Description
: PC-relative
118 // CHECK-NEXT
: Attribute
{
119 // CHECK-NEXT
: Tag
: 17
120 // CHECK-NEXT
: Value
: 2
121 // CHECK-NEXT
: TagName
: ABI_PCS_GOT_use
122 // CHECK-NEXT
: Description
: GOT-Indirect
124 // CHECK-NEXT
: Attribute
{
125 // CHECK-NEXT
: Tag
: 18
126 // CHECK-NEXT
: Value
: 4
127 // CHECK-NEXT
: TagName
: ABI_PCS_wchar_t
128 // CHECK-NEXT
: Description
: 4-byte
130 // CHECK-NEXT
: Attribute
{
131 // CHECK-NEXT
: Tag
: 20
132 // CHECK-NEXT
: Value
: 1
133 // CHECK-NEXT
: TagName
: ABI_FP_denormal
134 // CHECK-NEXT
: Description
: IEEE-
754
136 // CHECK-NEXT
: Attribute
{
137 // CHECK-NEXT
: Tag
: 21
138 // CHECK-NEXT
: Value
: 1
139 // CHECK-NEXT
: TagName
: ABI_FP_exceptions
140 // CHECK-NEXT
: Description
: IEEE-
754
142 // CHECK-NEXT
: Attribute
{
143 // CHECK-NEXT
: Tag
: 23
144 // CHECK-NEXT
: Value
: 3
145 // CHECK-NEXT
: TagName
: ABI_FP_number_model
146 // CHECK-NEXT
: Description
: IEEE-
754
148 // CHECK-NEXT
: Attribute
{
149 // CHECK-NEXT
: Tag
: 24
150 // CHECK-NEXT
: Value
: 1
151 // CHECK-NEXT
: TagName
: ABI_align_needed
152 // CHECK-NEXT
: Description
: 8-byte alignment
154 // CHECK-NEXT
: Attribute
{
155 // CHECK-NEXT
: Tag
: 25
156 // CHECK-NEXT
: Value
: 1
157 // CHECK-NEXT
: TagName
: ABI_align_preserved
158 // CHECK-NEXT
: Description
: 8-byte data alignment
160 // CHECK-NEXT
: Attribute
{
161 // CHECK-NEXT
: Tag
: 26
162 // CHECK-NEXT
: Value
: 2
163 // CHECK-NEXT
: TagName
: ABI_enum_size
164 // CHECK-NEXT
: Description
: Int32
166 // CHECK-NEXT
: Attribute
{
167 // CHECK-NEXT
: Tag
: 34
168 // CHECK-NEXT
: Value
: 1
169 // CHECK-NEXT
: TagName
: CPU_unaligned_access
170 // CHECK-NEXT
: Description
: v6-style
172 // CHECK-NEXT
: Attribute
{
173 // CHECK-NEXT
: Tag
: 38
174 // CHECK-NEXT
: Value
: 1
175 // CHECK-NEXT
: TagName
: ABI_FP_16bit_format
176 // CHECK-NEXT
: Description
: IEEE-
754
178 // CHECK-NEXT
: Attribute
{
179 // CHECK-NEXT
: Tag
: 68
180 // CHECK-NEXT
: Value
: 1
181 // CHECK-NEXT
: TagName
: Virtualization_use
182 // CHECK-NEXT
: Description
: TrustZone