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