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, 1 5 @CHECK: .eabi_attribute 6, 1 6 @CHECK-OBJ: Tag: 6 7 @CHECK-OBJ-NEXT: Value: 1 8 @CHECK-OBJ-NEXT: TagName: CPU_arch 9 @CHECK-OBJ-NEXT: Description: ARM v4 10 11 .eabi_attribute Tag_ARM_ISA_use, 1 12 @CHECK: .eabi_attribute 8, 1 13 @CHECK-OBJ: Tag: 8 14 @CHECK-OBJ-NEXT: Value: 1 15 @CHECK-OBJ-NEXT: TagName: ARM_ISA_use 16 @CHECK-OBJ-NEXT: Description: Permitted 17 18 .eabi_attribute Tag_THUMB_ISA_use, 1 19 @CHECK: .eabi_attribute 9, 1 20 @CHECK-OBJ: Tag: 9 21 @CHECK-OBJ-NEXT: Value: 1 22 @CHECK-OBJ-NEXT: TagName: THUMB_ISA_use 23 @CHECK-OBJ-NEXT: Description: Thumb-1 24 25 .eabi_attribute Tag_FP_arch, 1 26 @CHECK: .eabi_attribute 10, 1 27 @CHECK-OBJ: Tag: 10 28 @CHECK-OBJ-NEXT: Value: 1 29 @CHECK-OBJ-NEXT: TagName: FP_arch 30 @CHECK-OBJ-NEXT: Description: VFPv1 31 32 .eabi_attribute Tag_WMMX_arch, 1 33 @CHECK: .eabi_attribute 11, 1 34 @CHECK-OBJ: Tag: 11 35 @CHECK-OBJ-NEXT: Value: 1 36 @CHECK-OBJ-NEXT: TagName: WMMX_arch 37 @CHECK-OBJ-NEXT: Description: WMMXv1 38 39 .eabi_attribute Tag_Advanced_SIMD_arch, 1 40 @CHECK: .eabi_attribute 12, 1 41 @CHECK-OBJ: Tag: 12 42 @CHECK-OBJ-NEXT: Value: 1 43 @CHECK-OBJ-NEXT: TagName: Advanced_SIMD_arch 44 @CHECK-OBJ-NEXT: Description: NEONv1 45 46 .eabi_attribute Tag_PCS_config, 1 47 @CHECK: .eabi_attribute 13, 1 48 @CHECK-OBJ: Tag: 13 49 @CHECK-OBJ-NEXT: Value: 1 50 @CHECK-OBJ-NEXT: TagName: PCS_config 51 @CHECK-OBJ-NEXT: Description: Bare Platform 52 53 .eabi_attribute Tag_ABI_PCS_R9_use, 1 54 @CHECK: .eabi_attribute 14, 1 55 @CHECK-OBJ: Tag: 14 56 @CHECK-OBJ-NEXT: Value: 1 57 @CHECK-OBJ-NEXT: TagName: ABI_PCS_R9_use 58 @CHECK-OBJ-NEXT: Description: Static Base 59 60 .eabi_attribute Tag_ABI_PCS_RW_data, 1 61 @CHECK: .eabi_attribute 15, 1 62 @CHECK-OBJ: Tag: 15 63 @CHECK-OBJ-NEXT: Value: 1 64 @CHECK-OBJ-NEXT: TagName: ABI_PCS_RW_data 65 @CHECK-OBJ-NEXT: Description: PC-relative 66 67 .eabi_attribute Tag_ABI_PCS_RO_data, 1 68 @CHECK: .eabi_attribute 16, 1 69 @CHECK-OBJ: Tag: 16 70 @CHECK-OBJ-NEXT: Value: 1 71 @CHECK-OBJ-NEXT: TagName: ABI_PCS_RO_data 72 @CHECK-OBJ-NEXT: Description: PC-relative 73 74 .eabi_attribute Tag_ABI_PCS_GOT_use, 1 75 @CHECK: .eabi_attribute 17, 1 76 @CHECK-OBJ: Tag: 17 77 @CHECK-OBJ-NEXT: Value: 1 78 @CHECK-OBJ-NEXT: TagName: ABI_PCS_GOT_use 79 @CHECK-OBJ-NEXT: Description: Direct 80 81 .eabi_attribute Tag_ABI_FP_rounding, 1 82 @CHECK: .eabi_attribute 19, 1 83 @CHECK-OBJ: Tag: 19 84 @CHECK-OBJ-NEXT: Value: 1 85 @CHECK-OBJ-NEXT: TagName: ABI_FP_rounding 86 @CHECK-OBJ-NEXT: Description: Runtime 87 88 .eabi_attribute Tag_ABI_FP_denormal, 1 89 @CHECK: .eabi_attribute 20, 1 90 @CHECK-OBJ: Tag: 20 91 @CHECK-OBJ-NEXT: Value: 1 92 @CHECK-OBJ-NEXT: TagName: ABI_FP_denormal 93 @CHECK-OBJ-NEXT: Description: IEEE-754 94 95 .eabi_attribute Tag_ABI_FP_exceptions, 1 96 @CHECK: .eabi_attribute 21, 1 97 @CHECK-OBJ: Tag: 21 98 @CHECK-OBJ-NEXT: Value: 1 99 @CHECK-OBJ-NEXT: TagName: ABI_FP_exceptions 100 @CHECK-OBJ-NEXT: Description: IEEE-754 101 102 .eabi_attribute Tag_ABI_FP_user_exceptions, 1 103 @CHECK: .eabi_attribute 22, 1 104 @CHECK-OBJ: Tag: 22 105 @CHECK-OBJ-NEXT: Value: 1 106 @CHECK-OBJ-NEXT: TagName: ABI_FP_user_exceptions 107 @CHECK-OBJ-NEXT: Description: IEEE-754 108 109 .eabi_attribute Tag_ABI_FP_number_model, 1 110 @CHECK: .eabi_attribute 23, 1 111 @CHECK-OBJ: Tag: 23 112 @CHECK-OBJ-NEXT: Value: 1 113 @CHECK-OBJ-NEXT: TagName: ABI_FP_number_model 114 @CHECK-OBJ-NEXT: Description: Finite Only 115 116 .eabi_attribute Tag_ABI_align_needed, 1 117 @CHECK: .eabi_attribute 24, 1 118 @CHECK-OBJ: Tag: 24 119 @CHECK-OBJ-NEXT: Value: 1 120 @CHECK-OBJ-NEXT: TagName: ABI_align_needed 121 @CHECK-OBJ-NEXT: Description: 8-byte alignment 122 123 .eabi_attribute Tag_ABI_align_preserved, 1 124 @CHECK: .eabi_attribute 25, 1 125 @CHECK-OBJ: Tag: 25 126 @CHECK-OBJ-NEXT: Value: 1 127 @CHECK-OBJ-NEXT: TagName: ABI_align_preserved 128 @CHECK-OBJ-NEXT: Description: 8-byte data alignment 129 130 .eabi_attribute Tag_ABI_enum_size, 1 131 @CHECK: .eabi_attribute 26, 1 132 @CHECK-OBJ: Tag: 26 133 @CHECK-OBJ-NEXT: Value: 1 134 @CHECK-OBJ-NEXT: TagName: ABI_enum_size 135 @CHECK-OBJ-NEXT: Description: Packed 136 137 .eabi_attribute Tag_ABI_HardFP_use, 1 138 @CHECK: .eabi_attribute 27, 1 139 @CHECK-OBJ: Tag: 27 140 @CHECK-OBJ-NEXT: Value: 1 141 @CHECK-OBJ-NEXT: TagName: ABI_HardFP_use 142 @CHECK-OBJ-NEXT: Description: Single-Precision 143 144 .eabi_attribute Tag_ABI_VFP_args, 1 145 @CHECK: .eabi_attribute 28, 1 146 @CHECK-OBJ: Tag: 28 147 @CHECK-OBJ-NEXT: Value: 1 148 @CHECK-OBJ-NEXT: TagName: ABI_VFP_args 149 @CHECK-OBJ-NEXT: Description: AAPCS VFP 150 151 .eabi_attribute Tag_ABI_WMMX_args, 1 152 @CHECK: .eabi_attribute 29, 1 153 @CHECK-OBJ: Tag: 29 154 @CHECK-OBJ-NEXT: Value: 1 155 @CHECK-OBJ-NEXT: TagName: ABI_WMMX_args 156 @CHECK-OBJ-NEXT: Description: iWMMX 157 158 .eabi_attribute Tag_ABI_optimization_goals, 1 159 @CHECK: .eabi_attribute 30, 1 160 @CHECK-OBJ: Tag: 30 161 @CHECK-OBJ-NEXT: Value: 1 162 @CHECK-OBJ-NEXT: TagName: ABI_optimization_goals 163 @CHECK-OBJ-NEXT: Description: Speed 164 165 .eabi_attribute Tag_ABI_FP_optimization_goals, 1 166 @CHECK: .eabi_attribute 31, 1 167 @CHECK-OBJ: Tag: 31 168 @CHECK-OBJ-NEXT: Value: 1 169 @CHECK-OBJ-NEXT: TagName: ABI_FP_optimization_goals 170 @CHECK-OBJ-NEXT: Description: Speed 171 172 .eabi_attribute Tag_compatibility, 1, "" 173 @CHECK: .eabi_attribute 32, 1 174 @CHECK-OBJ: Tag: 32 175 @CHECK-OBJ-NEXT: Value: 1, 176 @CHECK-OBJ-NEXT: TagName: compatibility 177 @CHECK-OBJ-NEXT: Description: AEABI Conformant 178 179 .eabi_attribute Tag_CPU_unaligned_access, 1 180 @CHECK: .eabi_attribute 34, 1 181 @CHECK-OBJ: Tag: 34 182 @CHECK-OBJ-NEXT: Value: 1 183 @CHECK-OBJ-NEXT: TagName: CPU_unaligned_access 184 @CHECK-OBJ-NEXT: Description: v6-style 185 186 .eabi_attribute Tag_FP_HP_extension, 1 187 @CHECK: .eabi_attribute 36, 1 188 @CHECK-OBJ: Tag: 36 189 @CHECK-OBJ-NEXT: Value: 1 190 @CHECK-OBJ-NEXT: TagName: FP_HP_extension 191 @CHECK-OBJ-NEXT: Description: Permitted 192 193 .eabi_attribute Tag_ABI_FP_16bit_format, 1 194 @CHECK: .eabi_attribute 38, 1 195 @CHECK-OBJ: Tag: 38 196 @CHECK-OBJ-NEXT: Value: 1 197 @CHECK-OBJ-NEXT: TagName: ABI_FP_16bit_format 198 @CHECK-OBJ-NEXT: Description: IEEE-754 199 200 .eabi_attribute Tag_MPextension_use, 1 201 @CHECK: .eabi_attribute 42, 1 202 @CHECK-OBJ: Tag: 42 203 @CHECK-OBJ-NEXT: Value: 1 204 @CHECK-OBJ-NEXT: TagName: MPextension_use 205 @CHECK-OBJ-NEXT: Description: Permitted 206 207 .eabi_attribute Tag_DIV_use, 1 208 @CHECK: .eabi_attribute 44, 1 209 @CHECK-OBJ: Tag: 44 210 @CHECK-OBJ-NEXT: Value: 1 211 @CHECK-OBJ-NEXT: TagName: DIV_use 212 @CHECK-OBJ-NEXT: Description: Not Permitted 213 214 .eabi_attribute Tag_Virtualization_use, 1 215 @CHECK: .eabi_attribute 68, 1 216 @CHECK-OBJ: Tag: 68 217 @CHECK-OBJ-NEXT: Value: 1 218 @CHECK-OBJ-NEXT: TagName: Virtualization_use 219 @CHECK-OBJ-NEXT: Description: TrustZone 220 221