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