| Charlie Turner | abaec9d | 2014-11-03 14:52:00 +0000 | [diff] [blame^] | 1 | @ RUN: llvm-mc -triple armv7-elf -filetype asm -o - %s | FileCheck %s |
| Logan Chien | 8cbb80d | 2013-10-28 17:51:12 +0000 | [diff] [blame] | 2 | @ RUN: llvm-mc < %s -triple armv7-unknown-linux-gnueabi -filetype=obj -o - \ |
| Charlie Turner | abaec9d | 2014-11-03 14:52:00 +0000 | [diff] [blame^] | 3 | @ RUN: | llvm-readobj -arm-attributes | FileCheck %s --check-prefix=CHECK-OBJ |
| Logan Chien | 8cbb80d | 2013-10-28 17:51:12 +0000 | [diff] [blame] | 4 | |
| Charlie Turner | abaec9d | 2014-11-03 14:52:00 +0000 | [diff] [blame^] | 5 | .syntax unified |
| 6 | .thumb |
| Logan Chien | 8cbb80d | 2013-10-28 17:51:12 +0000 | [diff] [blame] | 7 | |
| 8 | @ <format-version> |
| Charlie Turner | abaec9d | 2014-11-03 14:52:00 +0000 | [diff] [blame^] | 9 | @ CHECK-OBJ: FormatVersion: 0x41 |
| Logan Chien | 8cbb80d | 2013-10-28 17:51:12 +0000 | [diff] [blame] | 10 | |
| 11 | @ <section-length> |
| Charlie Turner | abaec9d | 2014-11-03 14:52:00 +0000 | [diff] [blame^] | 12 | @ CHECK-OBJ: SectionLength: 122 |
| Logan Chien | 8cbb80d | 2013-10-28 17:51:12 +0000 | [diff] [blame] | 13 | |
| 14 | @ <vendor-name> "aeabi\0" |
| Charlie Turner | abaec9d | 2014-11-03 14:52:00 +0000 | [diff] [blame^] | 15 | @ CHECK-OBJ: Vendor: aeabi |
| Logan Chien | 8cbb80d | 2013-10-28 17:51:12 +0000 | [diff] [blame] | 16 | |
| 17 | @ <file-tag> |
| Charlie Turner | abaec9d | 2014-11-03 14:52:00 +0000 | [diff] [blame^] | 18 | @ CHECK-OBJ: Tag: Tag_File (0x1) |
| Logan Chien | 8cbb80d | 2013-10-28 17:51:12 +0000 | [diff] [blame] | 19 | |
| 20 | @ <size> |
| Charlie Turner | abaec9d | 2014-11-03 14:52:00 +0000 | [diff] [blame^] | 21 | @ CHECK-OBJ: Size: 112 |
| Logan Chien | 8cbb80d | 2013-10-28 17:51:12 +0000 | [diff] [blame] | 22 | |
| Charlie Turner | abaec9d | 2014-11-03 14:52:00 +0000 | [diff] [blame^] | 23 | .eabi_attribute Tag_CPU_raw_name, "Cortex-A9" |
| 24 | @ CHECK: .eabi_attribute 4, "Cortex-A9" |
| 25 | .eabi_attribute Tag_CPU_name, "cortex-a9" |
| 26 | @ CHECK: .cpu cortex-a9 |
| 27 | .eabi_attribute Tag_CPU_arch, 10 |
| 28 | @ CHECK: .eabi_attribute 6, 10 |
| 29 | @ CHECK-OBJ: Tag: 6 |
| 30 | @ CHECK-OBJ-NEXT: Value: 10 |
| 31 | @ CHECK-OBJ-NEXT: TagName: CPU_arch |
| 32 | @ CHECK-OBJ-NEXT: Description: ARM v7 |
| 33 | .eabi_attribute Tag_CPU_arch_profile, 'A' |
| 34 | @ CHECK: .eabi_attribute 7, 65 |
| 35 | @ CHECK-OBJ: Tag: 7 |
| 36 | @ CHECK-OBJ-NEXT: Value: 65 |
| 37 | @ CHECK-OBJ-NEXT: TagName: CPU_arch_profile |
| 38 | @ CHECK-OBJ-NEXT: Description: Application |
| 39 | .eabi_attribute Tag_ARM_ISA_use, 0 |
| 40 | @ CHECK: .eabi_attribute 8, 0 |
| 41 | @ CHECK-OBJ: Tag: 8 |
| 42 | @ CHECK-OBJ-NEXT: Value: 0 |
| 43 | @ CHECK-OBJ-NEXT: TagName: ARM_ISA_use |
| 44 | @ CHECK-OBJ-NEXT: Description: Not Permitted |
| 45 | .eabi_attribute Tag_THUMB_ISA_use, 2 |
| 46 | @ CHECK: .eabi_attribute 9, 2 |
| 47 | @ CHECK-OBJ: Tag: 9 |
| 48 | @ CHECK-OBJ-NEXT: Value: 2 |
| 49 | @ CHECK-OBJ-NEXT: TagName: THUMB_ISA_use |
| 50 | @ CHECK-OBJ-NEXT: Description: Thumb-2 |
| 51 | .eabi_attribute Tag_FP_arch, 3 |
| 52 | @ CHECK: .eabi_attribute 10, 3 |
| 53 | @ CHECK-OBJ: Tag: 10 |
| 54 | @ CHECK-OBJ-NEXT: Value: 3 |
| 55 | @ CHECK-OBJ-NEXT: TagName: FP_arch |
| 56 | @ CHECK-OBJ-NEXT: Description: VFPv3 |
| 57 | .eabi_attribute Tag_WMMX_arch, 0 |
| 58 | @ CHECK: .eabi_attribute 11, 0 |
| 59 | .eabi_attribute Tag_Advanced_SIMD_arch, 1 |
| 60 | @ CHECK: .eabi_attribute 12, 1 |
| 61 | @ CHECK-OBJ: Tag: 12 |
| 62 | @ CHECK-OBJ-NEXT: Value: 1 |
| 63 | @ CHECK-OBJ-NEXT: TagName: Advanced_SIMD_arch |
| 64 | @ CHECK-OBJ-NEXT: Description: NEONv1 |
| 65 | .eabi_attribute Tag_PCS_config, 2 |
| 66 | @ CHECK: .eabi_attribute 13, 2 |
| 67 | .eabi_attribute Tag_ABI_PCS_R9_use, 0 |
| 68 | @ CHECK: .eabi_attribute 14, 0 |
| 69 | .eabi_attribute Tag_ABI_PCS_RW_data, 0 |
| 70 | @ CHECK: .eabi_attribute 15, 0 |
| 71 | .eabi_attribute Tag_ABI_PCS_RO_data, 0 |
| 72 | @ CHECK: .eabi_attribute 16, 0 |
| 73 | .eabi_attribute Tag_ABI_PCS_GOT_use, 0 |
| 74 | @ CHECK: .eabi_attribute 17, 0 |
| 75 | .eabi_attribute Tag_ABI_PCS_wchar_t, 4 |
| 76 | @ CHECK: .eabi_attribute 18, 4 |
| 77 | .eabi_attribute Tag_ABI_FP_rounding, 1 |
| 78 | @ CHECK: .eabi_attribute 19, 1 |
| 79 | .eabi_attribute Tag_ABI_FP_denormal, 2 |
| 80 | @ CHECK: .eabi_attribute 20, 2 |
| 81 | @ CHECK-OBJ: Tag: 20 |
| 82 | @ CHECK-OBJ-NEXT: Value: 2 |
| 83 | @ CHECK-OBJ-NEXT: TagName: ABI_FP_denormal |
| 84 | @ CHECK-OBJ-NEXT: Description: Sign Only |
| 85 | .eabi_attribute Tag_ABI_FP_exceptions, 1 |
| 86 | @ CHECK: .eabi_attribute 21, 1 |
| 87 | @ CHECK-OBJ: Tag: 21 |
| 88 | @ CHECK-OBJ-NEXT: Value: 1 |
| 89 | @ CHECK-OBJ-NEXT: TagName: ABI_FP_exceptions |
| 90 | @ CHECK-OBJ-NEXT: Description: IEEE-754 |
| 91 | .eabi_attribute Tag_ABI_FP_user_exceptions, 1 |
| 92 | @ CHECK: .eabi_attribute 22, 1 |
| 93 | .eabi_attribute Tag_ABI_FP_number_model, 3 |
| 94 | @ CHECK: .eabi_attribute 23, 3 |
| 95 | @ CHECK-OBJ: Tag: 23 |
| 96 | @ CHECK-OBJ-NEXT: Value: 3 |
| 97 | @ CHECK-OBJ-NEXT: TagName: ABI_FP_number_model |
| 98 | @ CHECK-OBJ-NEXT: Description: IEEE-754 |
| 99 | .eabi_attribute Tag_ABI_align_needed, 1 |
| 100 | @ CHECK: .eabi_attribute 24, 1 |
| 101 | @ CHECK-OBJ: Tag: 24 |
| 102 | @ CHECK-OBJ-NEXT: Value: 1 |
| 103 | @ CHECK-OBJ-NEXT: TagName: ABI_align_needed |
| 104 | @ CHECK-OBJ-NEXT: Description: 8-byte alignment |
| 105 | .eabi_attribute Tag_ABI_align_preserved, 2 |
| 106 | @ CHECK: .eabi_attribute 25, 2 |
| 107 | @ CHECK-OBJ: Tag: 25 |
| 108 | @ CHECK-OBJ-NEXT: Value: 2 |
| 109 | @ CHECK-OBJ-NEXT: TagName: ABI_align_preserved |
| 110 | @ CHECK-OBJ-NEXT: Description: 8-byte data and code alignment |
| 111 | .eabi_attribute Tag_ABI_enum_size, 3 |
| 112 | @ CHECK: .eabi_attribute 26, 3 |
| 113 | .eabi_attribute Tag_ABI_HardFP_use, 0 |
| 114 | @ CHECK: .eabi_attribute 27, 0 |
| 115 | .eabi_attribute Tag_ABI_VFP_args, 1 |
| 116 | @ CHECK: .eabi_attribute 28, 1 |
| 117 | .eabi_attribute Tag_ABI_WMMX_args, 0 |
| 118 | @ CHECK: .eabi_attribute 29, 0 |
| 119 | .eabi_attribute Tag_ABI_FP_optimization_goals, 1 |
| 120 | @ CHECK: .eabi_attribute 31, 1 |
| 121 | .eabi_attribute Tag_compatibility, 1 |
| 122 | @ CHECK: .eabi_attribute 32, 1 |
| 123 | .eabi_attribute Tag_compatibility, 1, "aeabi" |
| 124 | @ CHECK: .eabi_attribute 32, 1, "aeabi" |
| 125 | .eabi_attribute Tag_CPU_unaligned_access, 0 |
| 126 | @ CHECK: .eabi_attribute 34, 0 |
| 127 | .eabi_attribute Tag_FP_HP_extension, 0 |
| 128 | @ CHECK: .eabi_attribute 36, 0 |
| 129 | .eabi_attribute Tag_ABI_FP_16bit_format, 0 |
| 130 | @ CHECK: .eabi_attribute 38, 0 |
| 131 | .eabi_attribute Tag_MPextension_use, 0 |
| 132 | @ CHECK: .eabi_attribute 42, 0 |
| 133 | .eabi_attribute Tag_DIV_use, 0 |
| 134 | @ CHECK: .eabi_attribute 44, 0 |
| 135 | .eabi_attribute Tag_nodefaults, 0 |
| 136 | @ CHECK: .eabi_attribute 64, 0 |
| 137 | .eabi_attribute Tag_also_compatible_with, "gnu" |
| 138 | @ CHECK: .eabi_attribute 65, "gnu" |
| 139 | .eabi_attribute Tag_T2EE_use, 0 |
| 140 | @ CHECK: .eabi_attribute 66, 0 |
| 141 | .eabi_attribute Tag_conformance, "2.09" |
| 142 | @ CHECK: .eabi_attribute 67, "2.09" |
| 143 | .eabi_attribute Tag_Virtualization_use, 0 |
| 144 | @ CHECK: .eabi_attribute 68, 0 |
| Logan Chien | 8cbb80d | 2013-10-28 17:51:12 +0000 | [diff] [blame] | 145 | |
| Charlie Turner | abaec9d | 2014-11-03 14:52:00 +0000 | [diff] [blame^] | 146 | @ ===--- Compatibility Checks ---=== |
| Logan Chien | 8cbb80d | 2013-10-28 17:51:12 +0000 | [diff] [blame] | 147 | |
| Charlie Turner | abaec9d | 2014-11-03 14:52:00 +0000 | [diff] [blame^] | 148 | .eabi_attribute Tag_ABI_align8_needed, 1 |
| 149 | @ CHECK: .eabi_attribute 24, 1 |
| 150 | .eabi_attribute Tag_ABI_align8_preserved, 2 |
| 151 | @ CHECK: .eabi_attribute 25, 2 |
| Logan Chien | 8cbb80d | 2013-10-28 17:51:12 +0000 | [diff] [blame] | 152 | |
| Charlie Turner | abaec9d | 2014-11-03 14:52:00 +0000 | [diff] [blame^] | 153 | @ ===--- GNU AS Compatibility Checks ---=== |
| Logan Chien | 8cbb80d | 2013-10-28 17:51:12 +0000 | [diff] [blame] | 154 | |
| Charlie Turner | abaec9d | 2014-11-03 14:52:00 +0000 | [diff] [blame^] | 155 | .eabi_attribute 2 * 2 + 1, "cortex-a9" |
| 156 | @ CHECK: .cpu cortex-a9 |
| 157 | .eabi_attribute 2 * 2 + 2, 5 * 2 |
| 158 | @ CHECK: .eabi_attribute 6, 10 |