1 // This tests that ARM attributes are properly encoded.
3 // RUN
: llvm-mc
< %s
-triple
=arm-linux-gnueabi
-filetype
=obj
-o
- \
4 // RUN
: | llvm-readobj
-S
--sd
- | FileCheck
%s
12 // Tag_arch_profile
(=7)
13 .eabi_attribute 7, 'A'
15 // Tag_ARM_ISA_use
(=8)
18 // Tag_THUMB_ISA_use
(=9)
24 // Tag_Advanced_SIMD_arch
(=12)
27 // Tag_ABI_FP_denormal
(=20)
30 // Tag_ABI_FP_exceptions
(=21)
33 // Tag_ABI_FP_number_model
(=23)
36 // Tag_ABI_align_needed
(=24)
39 // Tag_ABI_align_preserved
(=25)
42 // Tag_ABI_HardFP_use
(=27)
45 // Tag_ABI_VFP_args
(=28)
48 // Tag_FP_HP_extension
(=36)
51 // Tag_MPextension_use
(=42)
57 // Tag_DSP_extension
(=46)
60 // Tag_PAC_extension
(=50)
63 // Tag_BTI_extension
(=52)
66 // Tag_also_compatible_with
(=65)
67 .eabi_attribute 65, "\006\017"
72 // Tag_PACRET_use
(=76)
75 // Tag_Virtualization_use
(=68)
78 // Check that values
> 128 are encoded properly
79 .eabi_attribute 110, 160
81 // Check that tags
> 128 are encoded properly
82 .eabi_attribute 129, "1"
83 .eabi_attribute 250, 1
86 // CHECK
: Name
: .ARM.attributes (7)
87 // CHECK-NEXT
: Type
: SHT_ARM_ATTRIBUTES
(0x70000003)
88 // CHECK-NEXT
: Flags
[ (0x0)
90 // CHECK-NEXT
: Address
: 0x0
91 // CHECK-NEXT
: Offset
: 0x34
92 // CHECK-NEXT
: Size
: 85
93 // CHECK-NEXT
: Link
: 0
94 // CHECK-NEXT
: Info
: 0
95 // CHECK-NEXT
: AddressAlignment
: 1
96 // CHECK-NEXT
: EntrySize
: 0
97 // CHECK-NEXT
: SectionData
(
98 // CHECK-NEXT
: 0000: 41540000 00616561 62690001 4A000000 |AT.
..aeabi..J...|
99 // CHECK-NEXT
: 0010: 05636F72
7465782D
61380006 0A074108 |
.cortex-a8....A.|
100 // CHECK-NEXT
: 0020: 0109020A 030C0214
01150117 01180119 |
................|
101 // CHECK-NEXT
: 0030: 011B001C
0124012A 012C022E
01320034 |
.....$.*.,...2.4|
102 // CHECK-NEXT
: 0040: 0041060F
0044034A 004C006E A0018101 |
.A...D.J.L.n....|
103 // CHECK-NEXT
: 0050: 3100FA01
01 |
1....|