1*9880d681SAndroid Build Coastguard Worker// This tests that ARM attributes are properly encoded. 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker// RUN: llvm-mc < %s -triple=arm-linux-gnueabi -filetype=obj -o - \ 4*9880d681SAndroid Build Coastguard Worker// RUN: | llvm-readobj -s -sd | FileCheck %s 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Worker// Tag_CPU_name (=5) 7*9880d681SAndroid Build Coastguard Worker.cpu cortex-a8 8*9880d681SAndroid Build Coastguard Worker 9*9880d681SAndroid Build Coastguard Worker// Tag_CPU_arch (=6) 10*9880d681SAndroid Build Coastguard Worker.eabi_attribute 6, 10 11*9880d681SAndroid Build Coastguard Worker 12*9880d681SAndroid Build Coastguard Worker// Tag_arch_profile (=7) 13*9880d681SAndroid Build Coastguard Worker.eabi_attribute 7, 'A' 14*9880d681SAndroid Build Coastguard Worker 15*9880d681SAndroid Build Coastguard Worker// Tag_ARM_ISA_use (=8) 16*9880d681SAndroid Build Coastguard Worker.eabi_attribute 8, 1 17*9880d681SAndroid Build Coastguard Worker 18*9880d681SAndroid Build Coastguard Worker// Tag_THUMB_ISA_use (=9) 19*9880d681SAndroid Build Coastguard Worker.eabi_attribute 9, 2 20*9880d681SAndroid Build Coastguard Worker 21*9880d681SAndroid Build Coastguard Worker// Tag_FP_arch (=10) 22*9880d681SAndroid Build Coastguard Worker.fpu vfpv3 23*9880d681SAndroid Build Coastguard Worker 24*9880d681SAndroid Build Coastguard Worker// Tag_Advanced_SIMD_arch (=12) 25*9880d681SAndroid Build Coastguard Worker.eabi_attribute 12, 2 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Worker// Tag_ABI_FP_denormal (=20) 28*9880d681SAndroid Build Coastguard Worker.eabi_attribute 20, 1 29*9880d681SAndroid Build Coastguard Worker 30*9880d681SAndroid Build Coastguard Worker// Tag_ABI_FP_exceptions (=21) 31*9880d681SAndroid Build Coastguard Worker.eabi_attribute 21, 1 32*9880d681SAndroid Build Coastguard Worker 33*9880d681SAndroid Build Coastguard Worker// Tag_ABI_FP_number_model (=23) 34*9880d681SAndroid Build Coastguard Worker.eabi_attribute 23, 1 35*9880d681SAndroid Build Coastguard Worker 36*9880d681SAndroid Build Coastguard Worker// Tag_ABI_align_needed (=24) 37*9880d681SAndroid Build Coastguard Worker.eabi_attribute 24, 1 38*9880d681SAndroid Build Coastguard Worker 39*9880d681SAndroid Build Coastguard Worker// Tag_ABI_align_preserved (=25) 40*9880d681SAndroid Build Coastguard Worker.eabi_attribute 25, 1 41*9880d681SAndroid Build Coastguard Worker 42*9880d681SAndroid Build Coastguard Worker// Tag_ABI_HardFP_use (=27) 43*9880d681SAndroid Build Coastguard Worker.eabi_attribute 27, 0 44*9880d681SAndroid Build Coastguard Worker 45*9880d681SAndroid Build Coastguard Worker// Tag_ABI_VFP_args (=28) 46*9880d681SAndroid Build Coastguard Worker.eabi_attribute 28, 1 47*9880d681SAndroid Build Coastguard Worker 48*9880d681SAndroid Build Coastguard Worker// Tag_FP_HP_extension (=36) 49*9880d681SAndroid Build Coastguard Worker.eabi_attribute 36, 1 50*9880d681SAndroid Build Coastguard Worker 51*9880d681SAndroid Build Coastguard Worker// Tag_MPextension_use (=42) 52*9880d681SAndroid Build Coastguard Worker.eabi_attribute 42, 1 53*9880d681SAndroid Build Coastguard Worker 54*9880d681SAndroid Build Coastguard Worker// Tag_DIV_use (=44) 55*9880d681SAndroid Build Coastguard Worker.eabi_attribute 44, 2 56*9880d681SAndroid Build Coastguard Worker 57*9880d681SAndroid Build Coastguard Worker// Tag_DSP_extension (=46) 58*9880d681SAndroid Build Coastguard Worker.eabi_attribute 46, 1 59*9880d681SAndroid Build Coastguard Worker 60*9880d681SAndroid Build Coastguard Worker// Tag_Virtualization_use (=68) 61*9880d681SAndroid Build Coastguard Worker.eabi_attribute 68, 3 62*9880d681SAndroid Build Coastguard Worker 63*9880d681SAndroid Build Coastguard Worker// Check that values > 128 are encoded properly 64*9880d681SAndroid Build Coastguard Worker.eabi_attribute 110, 160 65*9880d681SAndroid Build Coastguard Worker 66*9880d681SAndroid Build Coastguard Worker// Check that tags > 128 are encoded properly 67*9880d681SAndroid Build Coastguard Worker.eabi_attribute 129, "1" 68*9880d681SAndroid Build Coastguard Worker.eabi_attribute 250, 1 69*9880d681SAndroid Build Coastguard Worker 70*9880d681SAndroid Build Coastguard Worker// CHECK: Section { 71*9880d681SAndroid Build Coastguard Worker// CHECK: Name: .ARM.attributes 72*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Type: SHT_ARM_ATTRIBUTES 73*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Flags [ (0x0) 74*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: ] 75*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Address: 0x0 76*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Offset: 0x34 77*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Size: 73 78*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Link: 0 79*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: Info: 0 80*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: AddressAlignment: 1 81*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: EntrySize: 0 82*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: SectionData ( 83*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: 0000: 41480000 00616561 62690001 3E000000 84*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: 0010: 05636F72 7465782D 61380006 0A074108 85*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: 0020: 0109020A 030C0214 01150117 01180119 86*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: 0030: 011B001C 0124012A 012C022E 0144036E 87*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: 0040: A0018101 3100FA01 01 88*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT: ) 89