blob: 6c6ea1c1448176b7ca9732bfb7329c073a61914c [file] [log] [blame]
Charlie Turnerabaec9d2014-11-03 14:52:00 +00001@ RUN: llvm-mc -triple armv7-elf -filetype asm -o - %s | FileCheck %s
Logan Chien8cbb80d2013-10-28 17:51:12 +00002@ RUN: llvm-mc < %s -triple armv7-unknown-linux-gnueabi -filetype=obj -o - \
Charlie Turnerabaec9d2014-11-03 14:52:00 +00003@ RUN: | llvm-readobj -arm-attributes | FileCheck %s --check-prefix=CHECK-OBJ
Logan Chien8cbb80d2013-10-28 17:51:12 +00004
Charlie Turnerabaec9d2014-11-03 14:52:00 +00005 .syntax unified
6 .thumb
Logan Chien8cbb80d2013-10-28 17:51:12 +00007
8@ <format-version>
Charlie Turnerabaec9d2014-11-03 14:52:00 +00009@ CHECK-OBJ: FormatVersion: 0x41
Logan Chien8cbb80d2013-10-28 17:51:12 +000010
11@ <section-length>
Charlie Turnerabaec9d2014-11-03 14:52:00 +000012@ CHECK-OBJ: SectionLength: 122
Logan Chien8cbb80d2013-10-28 17:51:12 +000013
14@ <vendor-name> "aeabi\0"
Charlie Turnerabaec9d2014-11-03 14:52:00 +000015@ CHECK-OBJ: Vendor: aeabi
Logan Chien8cbb80d2013-10-28 17:51:12 +000016
17@ <file-tag>
Charlie Turnerabaec9d2014-11-03 14:52:00 +000018@ CHECK-OBJ: Tag: Tag_File (0x1)
Logan Chien8cbb80d2013-10-28 17:51:12 +000019
20@ <size>
Charlie Turnerabaec9d2014-11-03 14:52:00 +000021@ CHECK-OBJ: Size: 112
Logan Chien8cbb80d2013-10-28 17:51:12 +000022
Charlie Turnerabaec9d2014-11-03 14:52:00 +000023 .eabi_attribute Tag_CPU_raw_name, "Cortex-A9"
24@ CHECK: .eabi_attribute 4, "Cortex-A9"
25 .eabi_attribute Tag_CPU_name, "cortex-a9"
26@ CHECK: .cpu cortex-a9
27 .eabi_attribute Tag_CPU_arch, 10
28@ CHECK: .eabi_attribute 6, 10
29@ CHECK-OBJ: Tag: 6
30@ CHECK-OBJ-NEXT: Value: 10
31@ CHECK-OBJ-NEXT: TagName: CPU_arch
32@ CHECK-OBJ-NEXT: Description: ARM v7
33 .eabi_attribute Tag_CPU_arch_profile, 'A'
34@ CHECK: .eabi_attribute 7, 65
35@ CHECK-OBJ: Tag: 7
36@ CHECK-OBJ-NEXT: Value: 65
37@ CHECK-OBJ-NEXT: TagName: CPU_arch_profile
38@ CHECK-OBJ-NEXT: Description: Application
39 .eabi_attribute Tag_ARM_ISA_use, 0
40@ CHECK: .eabi_attribute 8, 0
41@ CHECK-OBJ: Tag: 8
42@ CHECK-OBJ-NEXT: Value: 0
43@ CHECK-OBJ-NEXT: TagName: ARM_ISA_use
44@ CHECK-OBJ-NEXT: Description: Not Permitted
45 .eabi_attribute Tag_THUMB_ISA_use, 2
46@ CHECK: .eabi_attribute 9, 2
47@ CHECK-OBJ: Tag: 9
48@ CHECK-OBJ-NEXT: Value: 2
49@ CHECK-OBJ-NEXT: TagName: THUMB_ISA_use
50@ CHECK-OBJ-NEXT: Description: Thumb-2
51 .eabi_attribute Tag_FP_arch, 3
52@ CHECK: .eabi_attribute 10, 3
53@ CHECK-OBJ: Tag: 10
54@ CHECK-OBJ-NEXT: Value: 3
55@ CHECK-OBJ-NEXT: TagName: FP_arch
56@ CHECK-OBJ-NEXT: Description: VFPv3
57 .eabi_attribute Tag_WMMX_arch, 0
58@ CHECK: .eabi_attribute 11, 0
59 .eabi_attribute Tag_Advanced_SIMD_arch, 1
60@ CHECK: .eabi_attribute 12, 1
61@ CHECK-OBJ: Tag: 12
62@ CHECK-OBJ-NEXT: Value: 1
63@ CHECK-OBJ-NEXT: TagName: Advanced_SIMD_arch
64@ CHECK-OBJ-NEXT: Description: NEONv1
65 .eabi_attribute Tag_PCS_config, 2
66@ CHECK: .eabi_attribute 13, 2
67 .eabi_attribute Tag_ABI_PCS_R9_use, 0
68@ CHECK: .eabi_attribute 14, 0
69 .eabi_attribute Tag_ABI_PCS_RW_data, 0
70@ CHECK: .eabi_attribute 15, 0
71 .eabi_attribute Tag_ABI_PCS_RO_data, 0
72@ CHECK: .eabi_attribute 16, 0
73 .eabi_attribute Tag_ABI_PCS_GOT_use, 0
74@ CHECK: .eabi_attribute 17, 0
75 .eabi_attribute Tag_ABI_PCS_wchar_t, 4
76@ CHECK: .eabi_attribute 18, 4
77 .eabi_attribute Tag_ABI_FP_rounding, 1
78@ CHECK: .eabi_attribute 19, 1
79 .eabi_attribute Tag_ABI_FP_denormal, 2
80@ CHECK: .eabi_attribute 20, 2
81@ CHECK-OBJ: Tag: 20
82@ CHECK-OBJ-NEXT: Value: 2
83@ CHECK-OBJ-NEXT: TagName: ABI_FP_denormal
84@ CHECK-OBJ-NEXT: Description: Sign Only
85 .eabi_attribute Tag_ABI_FP_exceptions, 1
86@ CHECK: .eabi_attribute 21, 1
87@ CHECK-OBJ: Tag: 21
88@ CHECK-OBJ-NEXT: Value: 1
89@ CHECK-OBJ-NEXT: TagName: ABI_FP_exceptions
90@ CHECK-OBJ-NEXT: Description: IEEE-754
91 .eabi_attribute Tag_ABI_FP_user_exceptions, 1
92@ CHECK: .eabi_attribute 22, 1
93 .eabi_attribute Tag_ABI_FP_number_model, 3
94@ CHECK: .eabi_attribute 23, 3
95@ CHECK-OBJ: Tag: 23
96@ CHECK-OBJ-NEXT: Value: 3
97@ CHECK-OBJ-NEXT: TagName: ABI_FP_number_model
98@ CHECK-OBJ-NEXT: Description: IEEE-754
99 .eabi_attribute Tag_ABI_align_needed, 1
100@ CHECK: .eabi_attribute 24, 1
101@ CHECK-OBJ: Tag: 24
102@ CHECK-OBJ-NEXT: Value: 1
103@ CHECK-OBJ-NEXT: TagName: ABI_align_needed
104@ CHECK-OBJ-NEXT: Description: 8-byte alignment
105 .eabi_attribute Tag_ABI_align_preserved, 2
106@ CHECK: .eabi_attribute 25, 2
107@ CHECK-OBJ: Tag: 25
108@ CHECK-OBJ-NEXT: Value: 2
109@ CHECK-OBJ-NEXT: TagName: ABI_align_preserved
110@ CHECK-OBJ-NEXT: Description: 8-byte data and code alignment
111 .eabi_attribute Tag_ABI_enum_size, 3
112@ CHECK: .eabi_attribute 26, 3
113 .eabi_attribute Tag_ABI_HardFP_use, 0
114@ CHECK: .eabi_attribute 27, 0
115 .eabi_attribute Tag_ABI_VFP_args, 1
116@ CHECK: .eabi_attribute 28, 1
117 .eabi_attribute Tag_ABI_WMMX_args, 0
118@ CHECK: .eabi_attribute 29, 0
119 .eabi_attribute Tag_ABI_FP_optimization_goals, 1
120@ CHECK: .eabi_attribute 31, 1
121 .eabi_attribute Tag_compatibility, 1
122@ CHECK: .eabi_attribute 32, 1
123 .eabi_attribute Tag_compatibility, 1, "aeabi"
124@ CHECK: .eabi_attribute 32, 1, "aeabi"
125 .eabi_attribute Tag_CPU_unaligned_access, 0
126@ CHECK: .eabi_attribute 34, 0
127 .eabi_attribute Tag_FP_HP_extension, 0
128@ CHECK: .eabi_attribute 36, 0
129 .eabi_attribute Tag_ABI_FP_16bit_format, 0
130@ CHECK: .eabi_attribute 38, 0
131 .eabi_attribute Tag_MPextension_use, 0
132@ CHECK: .eabi_attribute 42, 0
133 .eabi_attribute Tag_DIV_use, 0
134@ CHECK: .eabi_attribute 44, 0
135 .eabi_attribute Tag_nodefaults, 0
136@ CHECK: .eabi_attribute 64, 0
137 .eabi_attribute Tag_also_compatible_with, "gnu"
138@ CHECK: .eabi_attribute 65, "gnu"
139 .eabi_attribute Tag_T2EE_use, 0
140@ CHECK: .eabi_attribute 66, 0
141 .eabi_attribute Tag_conformance, "2.09"
142@ CHECK: .eabi_attribute 67, "2.09"
143 .eabi_attribute Tag_Virtualization_use, 0
144@ CHECK: .eabi_attribute 68, 0
Logan Chien8cbb80d2013-10-28 17:51:12 +0000145
Charlie Turnerabaec9d2014-11-03 14:52:00 +0000146@ ===--- Compatibility Checks ---===
Logan Chien8cbb80d2013-10-28 17:51:12 +0000147
Charlie Turnerabaec9d2014-11-03 14:52:00 +0000148 .eabi_attribute Tag_ABI_align8_needed, 1
149@ CHECK: .eabi_attribute 24, 1
150 .eabi_attribute Tag_ABI_align8_preserved, 2
151@ CHECK: .eabi_attribute 25, 2
Logan Chien8cbb80d2013-10-28 17:51:12 +0000152
Charlie Turnerabaec9d2014-11-03 14:52:00 +0000153@ ===--- GNU AS Compatibility Checks ---===
Logan Chien8cbb80d2013-10-28 17:51:12 +0000154
Charlie Turnerabaec9d2014-11-03 14:52:00 +0000155 .eabi_attribute 2 * 2 + 1, "cortex-a9"
156@ CHECK: .cpu cortex-a9
157 .eabi_attribute 2 * 2 + 2, 5 * 2
158@ CHECK: .eabi_attribute 6, 10