281 lines · plain
1@ RUN: llvm-mc -triple armv7-elf -filetype asm -o - %s | FileCheck %s2@ RUN: llvm-mc < %s -triple armv7-unknown-linux-gnueabi -filetype=obj -o - \3@ RUN: | llvm-readobj --arch-specific - | FileCheck %s --check-prefix=CHECK-OBJ4 5 .syntax unified6 .thumb7 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-scope11@ sub-subsection of the first public subsection of the attributes12@ section. 2.3.7.4 of ABI Addenda.13@ CHECK-OBJ: Tag: 6714@ CHECK-OBJ-NEXT: TagName: conformance15@ CHECK-OBJ-NEXT: Value: 2.0916 .eabi_attribute Tag_CPU_raw_name, "Cortex-A9"17@ CHECK: .eabi_attribute 4, "Cortex-A9"18@ CHECK-OBJ: Tag: 419@ CHECK-OBJ-NEXT: TagName: CPU_raw_name20@ CHECK-OBJ-NEXT: Value: Cortex-A921 .eabi_attribute Tag_CPU_name, "cortex-a9"22@ CHECK: .cpu cortex-a923@ CHECK-OBJ: Tag: 524@ CHECK-OBJ-NEXT: TagName: CPU_name25@ CHECK-OBJ-NEXT: Value: cortex-a926 .eabi_attribute Tag_CPU_arch, 1027@ CHECK: .eabi_attribute 6, 1028@ CHECK-OBJ: Tag: 629@ CHECK-OBJ-NEXT: Value: 1030@ CHECK-OBJ-NEXT: TagName: CPU_arch31@ CHECK-OBJ-NEXT: Description: ARM v732 .eabi_attribute Tag_CPU_arch_profile, 'A'33@ CHECK: .eabi_attribute 7, 6534@ CHECK-OBJ: Tag: 735@ CHECK-OBJ-NEXT: Value: 6536@ CHECK-OBJ-NEXT: TagName: CPU_arch_profile37@ CHECK-OBJ-NEXT: Description: Application38 .eabi_attribute Tag_ARM_ISA_use, 039@ CHECK: .eabi_attribute 8, 040@ CHECK-OBJ: Tag: 841@ CHECK-OBJ-NEXT: Value: 042@ CHECK-OBJ-NEXT: TagName: ARM_ISA_use43@ CHECK-OBJ-NEXT: Description: Not Permitted44 .eabi_attribute Tag_THUMB_ISA_use, 245@ CHECK: .eabi_attribute 9, 246@ CHECK-OBJ: Tag: 947@ CHECK-OBJ-NEXT: Value: 248@ CHECK-OBJ-NEXT: TagName: THUMB_ISA_use49@ CHECK-OBJ-NEXT: Description: Thumb-250 .eabi_attribute Tag_FP_arch, 351@ CHECK: .eabi_attribute 10, 352@ CHECK-OBJ: Tag: 1053@ CHECK-OBJ-NEXT: Value: 354@ CHECK-OBJ-NEXT: TagName: FP_arch55@ CHECK-OBJ-NEXT: Description: VFPv356 .eabi_attribute Tag_WMMX_arch, 057@ CHECK: .eabi_attribute 11, 058@ CHECK-OBJ: Tag: 1159@ CHECK-OBJ-NEXT: Value: 060@ CHECK-OBJ-NEXT: TagName: WMMX_arch61@ CHECK-OBJ-NEXT: Description: Not Permitted62 .eabi_attribute Tag_Advanced_SIMD_arch, 163@ CHECK: .eabi_attribute 12, 164@ CHECK-OBJ: Tag: 1265@ CHECK-OBJ-NEXT: Value: 166@ CHECK-OBJ-NEXT: TagName: Advanced_SIMD_arch67@ CHECK-OBJ-NEXT: Description: NEONv168 .eabi_attribute Tag_PCS_config, 269@ CHECK: .eabi_attribute 13, 270@ CHECK-OBJ: Tag: 1371@ CHECK-OBJ-NEXT: Value: 272@ CHECK-OBJ-NEXT: TagName: PCS_config73@ CHECK-OBJ-NEXT: Description: Linux Application74 .eabi_attribute Tag_ABI_PCS_R9_use, 075@ CHECK: .eabi_attribute 14, 076@ CHECK-OBJ: Tag: 1477@ CHECK-OBJ-NEXT: Value: 078@ CHECK-OBJ-NEXT: TagName: ABI_PCS_R9_use79@ CHECK-OBJ-NEXT: Description: v680 .eabi_attribute Tag_ABI_PCS_RW_data, 081@ CHECK: .eabi_attribute 15, 082@ CHECK-OBJ: Tag: 1583@ CHECK-OBJ-NEXT: Value: 084@ CHECK-OBJ-NEXT: TagName: ABI_PCS_RW_data85@ CHECK-OBJ-NEXT: Description: Absolute86 .eabi_attribute Tag_ABI_PCS_RO_data, 087@ CHECK: .eabi_attribute 16, 088@ CHECK-OBJ: Tag: 1689@ CHECK-OBJ-NEXT: Value: 090@ CHECK-OBJ-NEXT: TagName: ABI_PCS_RO_data91@ CHECK-OBJ-NEXT: Description: Absolute92 .eabi_attribute Tag_ABI_PCS_GOT_use, 093@ CHECK: .eabi_attribute 17, 094@ CHECK-OBJ: Tag: 1795@ CHECK-OBJ-NEXT: Value: 096@ CHECK-OBJ-NEXT: TagName: ABI_PCS_GOT_use97@ CHECK-OBJ-NEXT: Description: Not Permitted98 .eabi_attribute Tag_ABI_PCS_wchar_t, 499@ CHECK: .eabi_attribute 18, 4100@ CHECK-OBJ: Tag: 18101@ CHECK-OBJ-NEXT: Value: 4102@ CHECK-OBJ-NEXT: TagName: ABI_PCS_wchar_t103@ CHECK-OBJ-NEXT: Description: 4-byte104 .eabi_attribute Tag_ABI_FP_rounding, 1105@ CHECK: .eabi_attribute 19, 1106@ CHECK-OBJ: Tag: 19107@ CHECK-OBJ-NEXT: Value: 1108@ CHECK-OBJ-NEXT: TagName: ABI_FP_rounding109@ CHECK-OBJ-NEXT: Description: Runtime110 .eabi_attribute Tag_ABI_FP_denormal, 2111@ CHECK: .eabi_attribute 20, 2112@ CHECK-OBJ: Tag: 20113@ CHECK-OBJ-NEXT: Value: 2114@ CHECK-OBJ-NEXT: TagName: ABI_FP_denormal115@ CHECK-OBJ-NEXT: Description: Sign Only116 .eabi_attribute Tag_ABI_FP_exceptions, 1117@ CHECK: .eabi_attribute 21, 1118@ CHECK-OBJ: Tag: 21119@ CHECK-OBJ-NEXT: Value: 1120@ CHECK-OBJ-NEXT: TagName: ABI_FP_exceptions121@ CHECK-OBJ-NEXT: Description: IEEE-754122 .eabi_attribute Tag_ABI_FP_user_exceptions, 1123@ CHECK: .eabi_attribute 22, 1124@ CHECK-OBJ: Tag: 22125@ CHECK-OBJ-NEXT: Value: 1126@ CHECK-OBJ-NEXT: TagName: ABI_FP_user_exceptions127@ CHECK-OBJ-NEXT: Description: IEEE-754128 .eabi_attribute Tag_ABI_FP_number_model, 3129@ CHECK: .eabi_attribute 23, 3130@ CHECK-OBJ: Tag: 23131@ CHECK-OBJ-NEXT: Value: 3132@ CHECK-OBJ-NEXT: TagName: ABI_FP_number_model133@ CHECK-OBJ-NEXT: Description: IEEE-754134 .eabi_attribute Tag_ABI_align_needed, 1135@ CHECK: .eabi_attribute 24, 1136@ CHECK-OBJ: Tag: 24137@ CHECK-OBJ-NEXT: Value: 1138@ CHECK-OBJ-NEXT: TagName: ABI_align_needed139@ CHECK-OBJ-NEXT: Description: 8-byte alignment140 .eabi_attribute Tag_ABI_align_preserved, 2141@ CHECK: .eabi_attribute 25, 2142@ CHECK-OBJ: Tag: 25143@ CHECK-OBJ-NEXT: Value: 2144@ CHECK-OBJ-NEXT: TagName: ABI_align_preserved145@ CHECK-OBJ-NEXT: Description: 8-byte data and code alignment146 .eabi_attribute Tag_ABI_enum_size, 3147@ CHECK: .eabi_attribute 26, 3148@ CHECK-OBJ: Tag: 26149@ CHECK-OBJ-NEXT: Value: 3150@ CHECK-OBJ-NEXT: TagName: ABI_enum_size151@ CHECK-OBJ-NEXT: Description: External Int32152 .eabi_attribute Tag_ABI_HardFP_use, 0153@ CHECK: .eabi_attribute 27, 0154@ CHECK-OBJ: Tag: 27155@ CHECK-OBJ-NEXT: Value: 0156@ CHECK-OBJ-NEXT: TagName: ABI_HardFP_use157@ CHECK-OBJ-NEXT: Description: Tag_FP_arch158 .eabi_attribute Tag_ABI_VFP_args, 1159@ CHECK: .eabi_attribute 28, 1160@ CHECK-OBJ: Tag: 28161@ CHECK-OBJ-NEXT: Value: 1162@ CHECK-OBJ-NEXT: TagName: ABI_VFP_args163@ CHECK-OBJ-NEXT: Description: AAPCS VFP164 .eabi_attribute Tag_ABI_WMMX_args, 0165@ CHECK: .eabi_attribute 29, 0166@ CHECK-OBJ: Tag: 29167@ CHECK-OBJ-NEXT: Value: 0168@ CHECK-OBJ-NEXT: TagName: ABI_WMMX_args169@ CHECK-OBJ-NEXT: Description: AAPCS170 .eabi_attribute Tag_ABI_FP_optimization_goals, 1171@ CHECK: .eabi_attribute 31, 1172@ CHECK-OBJ: Tag: 31173@ CHECK-OBJ-NEXT: Value: 1174@ CHECK-OBJ-NEXT: TagName: ABI_FP_optimization_goals175@ CHECK-OBJ-NEXT: Description: Speed176 .eabi_attribute Tag_compatibility, 1, "aeabi"177@ CHECK: .eabi_attribute 32, 1, "aeabi"178@ CHECK-OBJ: Tag: 32179@ CHECK-OBJ-NEXT: Value: 1, aeabi180@ CHECK-OBJ-NEXT: TagName: compatibility181@ CHECK-OBJ-NEXT: Description: AEABI Conformant182 .eabi_attribute Tag_CPU_unaligned_access, 0183@ CHECK: .eabi_attribute 34, 0184@ CHECK-OBJ: Tag: 34185@ CHECK-OBJ-NEXT: Value: 0186@ CHECK-OBJ-NEXT: TagName: CPU_unaligned_access187@ CHECK-OBJ-NEXT: Description: Not Permitted188 .eabi_attribute Tag_FP_HP_extension, 0189@ CHECK: .eabi_attribute 36, 0190@ CHECK-OBJ: Tag: 36191@ CHECK-OBJ-NEXT: Value: 0192@ CHECK-OBJ-NEXT: TagName: FP_HP_extension193@ CHECK-OBJ-NEXT: Description: If Available194 .eabi_attribute Tag_ABI_FP_16bit_format, 0195@ CHECK: .eabi_attribute 38, 0196@ CHECK-OBJ: Tag: 38197@ CHECK-OBJ-NEXT: Value: 0198@ CHECK-OBJ-NEXT: TagName: ABI_FP_16bit_format199@ CHECK-OBJ-NEXT: Description: Not Permitte200 .eabi_attribute Tag_MPextension_use, 0201@ CHECK: .eabi_attribute 42, 0202@ CHECK-OBJ: Tag: 42203@ CHECK-OBJ-NEXT: Value: 0204@ CHECK-OBJ-NEXT: TagName: MPextension_use205@ CHECK-OBJ-NEXT: Description: Not Permitted206 .eabi_attribute Tag_DIV_use, 0207@ CHECK: .eabi_attribute 44, 0208@ CHECK-OBJ: Tag: 44209@ CHECK-OBJ-NEXT: Value: 0210@ CHECK-OBJ-NEXT: TagName: DIV_use211@ CHECK-OBJ-NEXT: Description: If Available212 .eabi_attribute Tag_DSP_extension, 0213@ CHECK: .eabi_attribute 46, 0214@ CHECK-OBJ: Tag: 46215@ CHECK-OBJ-NEXT: Value: 0216@ CHECK-OBJ-NEXT: TagName: DSP_extension217@ CHECK-OBJ-NEXT: Description: Not Permitted218 .eabi_attribute Tag_PAC_extension, 0219@ CHECK: .eabi_attribute 50, 0220@ CHECK-OBJ: Tag: 50221@ CHECK-OBJ-NEXT: Value: 0222@ CHECK-OBJ-NEXT: TagName: PAC_extension223@ CHECK-OBJ-NEXT: Description: Not Permitted224 .eabi_attribute Tag_BTI_extension, 0225@ CHECK: .eabi_attribute 52, 0226@ CHECK-OBJ: Tag: 52227@ CHECK-OBJ-NEXT: Value: 0228@ CHECK-OBJ-NEXT: TagName: BTI_extension229@ CHECK-OBJ-NEXT: Description: Not Permitted230 .eabi_attribute Tag_nodefaults, 0231@ CHECK: .eabi_attribute 64, 0232@ CHECK-OBJ: Tag: 64233@ CHECK-OBJ-NEXT: Value: 0234@ CHECK-OBJ-NEXT: TagName: nodefaults235@ CHECK-OBJ-NEXT: Description: Unspecified Tags UNDEFINED236 .eabi_attribute Tag_also_compatible_with, "\006\017"237@ CHECK: .eabi_attribute 65, "\006\017"238@ CHECK-OBJ: Tag: 65239@ CHECK-OBJ-NEXT: TagName: also_compatible_with240@ CHECK-OBJ-NEXT: Value: \006\017241@ CHECK-OBJ-NEXT: Description: Tag_CPU_arch = 15 (ARM v8-R)242 .eabi_attribute Tag_T2EE_use, 0243@ CHECK: .eabi_attribute 66, 0244@ CHECK-OBJ: Tag: 66245@ CHECK-OBJ-NEXT: Value: 0246@ CHECK-OBJ-NEXT: TagName: T2EE_use247@ CHECK-OBJ-NEXT: Description: Not Permitted248 .eabi_attribute Tag_Virtualization_use, 0249@ CHECK: .eabi_attribute 68, 0250@ CHECK-OBJ: Tag: 68251@ CHECK-OBJ-NEXT: Value: 0252@ CHECK-OBJ-NEXT: TagName: Virtualization_use253@ CHECK-OBJ-NEXT: Description: Not Permitted254 .eabi_attribute Tag_BTI_use, 0255@ CHECK: .eabi_attribute 74, 0256@ CHECK-OBJ: Tag: 74257@ CHECK-OBJ-NEXT: Value: 0258@ CHECK-OBJ-NEXT: TagName: BTI_use259@ CHECK-OBJ-NEXT: Description: Not Used260 .eabi_attribute Tag_PACRET_use, 0261@ CHECK: .eabi_attribute 76, 0262@ CHECK-OBJ: Tag: 76263@ CHECK-OBJ-NEXT: Value: 0264@ CHECK-OBJ-NEXT: TagName: PACRET_use265@ CHECK-OBJ-NEXT: Description: Not Used266 267 268@ ===--- Compatibility Checks ---===269 270 .eabi_attribute Tag_ABI_align8_needed, 1271@ CHECK: .eabi_attribute 24, 1272 .eabi_attribute Tag_ABI_align8_preserved, 2273@ CHECK: .eabi_attribute 25, 2274 275@ ===--- GNU AS Compatibility Checks ---===276 277 .eabi_attribute 2 * 2 + 1, "cortex-a9"278@ CHECK: .cpu cortex-a9279 .eabi_attribute 2 * 2 + 2, 5 * 2280@ CHECK: .eabi_attribute 6, 10281