Bradley Smith | 2521975 | 2013-11-01 13:27:35 +0000 | [diff] [blame^] | 1 | // This tests that ARM attributes are properly encoded. |
| 2 | |
| 3 | // RUN: llvm-mc < %s -triple=arm-linux-gnueabi -filetype=obj -o - \ |
| 4 | // RUN: | llvm-readobj -s -sd | FileCheck %s |
| 5 | |
| 6 | // Tag_CPU_name (=5) |
| 7 | .cpu Cortex-A8 |
| 8 | |
| 9 | // Tag_CPU_arch (=6) |
| 10 | .eabi_attribute 6, 10 |
| 11 | |
| 12 | // Tag_arch_profile (=7) |
| 13 | .eabi_attribute 7, 'A' |
| 14 | |
| 15 | // Tag_ARM_ISA_use (=8) |
| 16 | .eabi_attribute 8, 1 |
| 17 | |
| 18 | // Tag_THUMB_ISA_use (=9) |
| 19 | .eabi_attribute 9, 2 |
| 20 | |
| 21 | // Tag_FP_arch (=10) |
| 22 | .fpu vfpv3 |
| 23 | |
| 24 | // Tag_Advanced_SIMD_arch (=12) |
| 25 | .eabi_attribute 12, 2 |
| 26 | |
| 27 | // Tag_ABI_FP_denormal (=20) |
| 28 | .eabi_attribute 20, 1 |
| 29 | |
| 30 | // Tag_ABI_FP_exceptions (=21) |
| 31 | .eabi_attribute 21, 1 |
| 32 | |
| 33 | // Tag_ABI_FP_number_model (=23) |
| 34 | .eabi_attribute 23, 1 |
| 35 | |
| 36 | // Tag_ABI_align_needed (=24) |
| 37 | .eabi_attribute 24, 1 |
| 38 | |
| 39 | // Tag_ABI_align_preserved (=25) |
| 40 | .eabi_attribute 25, 1 |
| 41 | |
| 42 | // Tag_ABI_HardFP_use (=27) |
| 43 | .eabi_attribute 27, 0 |
| 44 | |
| 45 | // Tag_ABI_VFP_args (=28) |
| 46 | .eabi_attribute 28, 1 |
| 47 | |
| 48 | // Tag_MPextension_use (=42) |
| 49 | .eabi_attribute 42, 1 |
| 50 | |
| 51 | // Tag_DIV_use (=44) |
| 52 | .eabi_attribute 44, 2 |
| 53 | |
| 54 | // Tag_Virtualization_use (=68) |
| 55 | .eabi_attribute 68, 3 |
| 56 | |
| 57 | // Check that values > 128 are encoded properly |
| 58 | .eabi_attribute 110, 160 |
| 59 | |
| 60 | // Check that tags > 128 are encoded properly |
| 61 | .eabi_attribute 129, 1 |
| 62 | .eabi_attribute 250, 1 |
| 63 | |
| 64 | // CHECK: Section { |
| 65 | // CHECK: Name: .ARM.attributes |
| 66 | // CHECK-NEXT: Type: SHT_ARM_ATTRIBUTES |
| 67 | // CHECK-NEXT: Flags [ (0x0) |
| 68 | // CHECK-NEXT: ] |
| 69 | // CHECK-NEXT: Address: 0x0 |
| 70 | // CHECK-NEXT: Offset: 0x34 |
| 71 | // CHECK-NEXT: Size: 68 |
| 72 | // CHECK-NEXT: Link: 0 |
| 73 | // CHECK-NEXT: Info: 0 |
| 74 | // CHECK-NEXT: AddressAlignment: 1 |
| 75 | // CHECK-NEXT: EntrySize: 0 |
| 76 | // CHECK-NEXT: SectionData ( |
| 77 | // CHECK-NEXT: 0000: 41430000 00616561 62690001 39000000 |
| 78 | // CHECK-NEXT: 0010: 05434F52 5445582D 41380006 0A074108 |
| 79 | // CHECK-NEXT: 0020: 0109020A 030C0214 01150117 01180119 |
| 80 | // CHECK-NEXT: 0030: 011B001C 012A012C 0244036E A0018101 |
| 81 | // CHECK-NEXT: 0040: 01FA0101 |
| 82 | // CHECK-NEXT: ) |