Add missing tests for build attribute encodings in object files.

test/MC/ARM/directive-eabi_attribute.s was missing several tests of object file
encodings relative to the existing tests for assembly file encodings. This
commit adds the missing tests.

Change-Id: Ie110ca02b65e8f4d4c77f437bd09d03607fa5c0d
llvm-svn: 221250
This commit is contained in:
Charlie Turner 2014-11-04 09:07:40 +00:00
parent 7b2e22cec4
commit 34ec84ec7f
1 changed files with 106 additions and 17 deletions

View File

@ -2,28 +2,19 @@
@ RUN: llvm-mc < %s -triple armv7-unknown-linux-gnueabi -filetype=obj -o - \
@ RUN: | llvm-readobj -arm-attributes | FileCheck %s --check-prefix=CHECK-OBJ
.syntax unified
.thumb
@ <format-version>
@ CHECK-OBJ: FormatVersion: 0x41
@ <section-length>
@ CHECK-OBJ: SectionLength: 122
@ <vendor-name> "aeabi\0"
@ CHECK-OBJ: Vendor: aeabi
@ <file-tag>
@ CHECK-OBJ: Tag: Tag_File (0x1)
@ <size>
@ CHECK-OBJ: Size: 112
.syntax unified
.thumb
.eabi_attribute Tag_CPU_raw_name, "Cortex-A9"
@ CHECK: .eabi_attribute 4, "Cortex-A9"
@ CHECK-OBJ: Tag: 4
@ CHECK-OBJ-NEXT: TagName: CPU_raw_name
@ CHECK-OBJ-NEXT: Value: CORTEX-A9
.eabi_attribute Tag_CPU_name, "cortex-a9"
@ CHECK: .cpu cortex-a9
@ CHECK-OBJ: Tag: 5
@ CHECK-OBJ-NEXT: TagName: CPU_name
@ CHECK-OBJ-NEXT: Value: CORTEX-A9
.eabi_attribute Tag_CPU_arch, 10
@ CHECK: .eabi_attribute 6, 10
@ CHECK-OBJ: Tag: 6
@ -56,6 +47,10 @@
@ CHECK-OBJ-NEXT: Description: VFPv3
.eabi_attribute Tag_WMMX_arch, 0
@ CHECK: .eabi_attribute 11, 0
@ CHECK-OBJ: Tag: 11
@ CHECK-OBJ-NEXT: Value: 0
@ CHECK-OBJ-NEXT: TagName: WMMX_arch
@ CHECK-OBJ-NEXT: Description: Not Permitted
.eabi_attribute Tag_Advanced_SIMD_arch, 1
@ CHECK: .eabi_attribute 12, 1
@ CHECK-OBJ: Tag: 12
@ -64,18 +59,46 @@
@ CHECK-OBJ-NEXT: Description: NEONv1
.eabi_attribute Tag_PCS_config, 2
@ CHECK: .eabi_attribute 13, 2
@ CHECK-OBJ: Tag: 13
@ CHECK-OBJ-NEXT: Value: 2
@ CHECK-OBJ-NEXT: TagName: PCS_config
@ CHECK-OBJ-NEXT: Description: Linux Application
.eabi_attribute Tag_ABI_PCS_R9_use, 0
@ CHECK: .eabi_attribute 14, 0
@ CHECK-OBJ: Tag: 14
@ CHECK-OBJ-NEXT: Value: 0
@ CHECK-OBJ-NEXT: TagName: ABI_PCS_R9_use
@ CHECK-OBJ-NEXT: Description: v6
.eabi_attribute Tag_ABI_PCS_RW_data, 0
@ CHECK: .eabi_attribute 15, 0
@ CHECK-OBJ: Tag: 15
@ CHECK-OBJ-NEXT: Value: 0
@ CHECK-OBJ-NEXT: TagName: ABI_PCS_RW_data
@ CHECK-OBJ-NEXT: Description: Absolute
.eabi_attribute Tag_ABI_PCS_RO_data, 0
@ CHECK: .eabi_attribute 16, 0
@ CHECK-OBJ: Tag: 16
@ CHECK-OBJ-NEXT: Value: 0
@ CHECK-OBJ-NEXT: TagName: ABI_PCS_RO_data
@ CHECK-OBJ-NEXT: Description: Absolute
.eabi_attribute Tag_ABI_PCS_GOT_use, 0
@ CHECK: .eabi_attribute 17, 0
@ CHECK-OBJ: Tag: 17
@ CHECK-OBJ-NEXT: Value: 0
@ CHECK-OBJ-NEXT: TagName: ABI_PCS_GOT_use
@ CHECK-OBJ-NEXT: Description: Not Permitted
.eabi_attribute Tag_ABI_PCS_wchar_t, 4
@ CHECK: .eabi_attribute 18, 4
@ CHECK-OBJ: Tag: 18
@ CHECK-OBJ-NEXT: Value: 4
@ CHECK-OBJ-NEXT: TagName: ABI_PCS_wchar_t
@ CHECK-OBJ-NEXT: Description: 4-byte
.eabi_attribute Tag_ABI_FP_rounding, 1
@ CHECK: .eabi_attribute 19, 1
@ CHECK-OBJ: Tag: 19
@ CHECK-OBJ-NEXT: Value: 1
@ CHECK-OBJ-NEXT: TagName: ABI_FP_rounding
@ CHECK-OBJ-NEXT: Description: Runtime
.eabi_attribute Tag_ABI_FP_denormal, 2
@ CHECK: .eabi_attribute 20, 2
@ CHECK-OBJ: Tag: 20
@ -90,6 +113,10 @@
@ CHECK-OBJ-NEXT: Description: IEEE-754
.eabi_attribute Tag_ABI_FP_user_exceptions, 1
@ CHECK: .eabi_attribute 22, 1
@ CHECK-OBJ: Tag: 22
@ CHECK-OBJ-NEXT: Value: 1
@ CHECK-OBJ-NEXT: TagName: ABI_FP_user_exceptions
@ CHECK-OBJ-NEXT: Description: IEEE-754
.eabi_attribute Tag_ABI_FP_number_model, 3
@ CHECK: .eabi_attribute 23, 3
@ CHECK-OBJ: Tag: 23
@ -110,38 +137,100 @@
@ CHECK-OBJ-NEXT: Description: 8-byte data and code alignment
.eabi_attribute Tag_ABI_enum_size, 3
@ CHECK: .eabi_attribute 26, 3
@ CHECK-OBJ: Tag: 26
@ CHECK-OBJ-NEXT: Value: 3
@ CHECK-OBJ-NEXT: TagName: ABI_enum_size
@ CHECK-OBJ-NEXT: Description: External Int32
.eabi_attribute Tag_ABI_HardFP_use, 0
@ CHECK: .eabi_attribute 27, 0
@ CHECK-OBJ: Tag: 27
@ CHECK-OBJ-NEXT: Value: 0
@ CHECK-OBJ-NEXT: TagName: ABI_HardFP_use
@ CHECK-OBJ-NEXT: Description: Tag_FP_arch
.eabi_attribute Tag_ABI_VFP_args, 1
@ CHECK: .eabi_attribute 28, 1
@ CHECK-OBJ: Tag: 28
@ CHECK-OBJ-NEXT: Value: 1
@ CHECK-OBJ-NEXT: TagName: ABI_VFP_args
@ CHECK-OBJ-NEXT: Description: AAPCS VFP
.eabi_attribute Tag_ABI_WMMX_args, 0
@ CHECK: .eabi_attribute 29, 0
@ CHECK-OBJ: Tag: 29
@ CHECK-OBJ-NEXT: Value: 0
@ CHECK-OBJ-NEXT: TagName: ABI_WMMX_args
@ CHECK-OBJ-NEXT: Description: AAPCS
.eabi_attribute Tag_ABI_FP_optimization_goals, 1
@ CHECK: .eabi_attribute 31, 1
@ CHECK-OBJ: Tag: 31
@ CHECK-OBJ-NEXT: Value: 1
@ CHECK-OBJ-NEXT: TagName: ABI_FP_optimization_goals
@ CHECK-OBJ-NEXT: Description: Speed
.eabi_attribute Tag_compatibility, 1
@ CHECK: .eabi_attribute 32, 1
.eabi_attribute Tag_compatibility, 1, "aeabi"
@ CHECK: .eabi_attribute 32, 1, "aeabi"
@ CHECK-OBJ: Tag: 32
@ CHECK-OBJ-NEXT: Value: 1, AEABI
@ CHECK-OBJ-NEXT: TagName: compatibility
@ CHECK-OBJ-NEXT: Description: AEABI Conformant
.eabi_attribute Tag_CPU_unaligned_access, 0
@ CHECK: .eabi_attribute 34, 0
@ CHECK-OBJ: Tag: 34
@ CHECK-OBJ-NEXT: Value: 0
@ CHECK-OBJ-NEXT: TagName: CPU_unaligned_access
@ CHECK-OBJ-NEXT: Description: Not Permitted
.eabi_attribute Tag_FP_HP_extension, 0
@ CHECK: .eabi_attribute 36, 0
@ CHECK-OBJ: Tag: 36
@ CHECK-OBJ-NEXT: Value: 0
@ CHECK-OBJ-NEXT: TagName: FP_HP_extension
@ CHECK-OBJ-NEXT: Description: If Available
.eabi_attribute Tag_ABI_FP_16bit_format, 0
@ CHECK: .eabi_attribute 38, 0
@ CHECK-OBJ: Tag: 38
@ CHECK-OBJ-NEXT: Value: 0
@ CHECK-OBJ-NEXT: TagName: ABI_FP_16bit_format
@ CHECK-OBJ-NEXT: Description: Not Permitte
.eabi_attribute Tag_MPextension_use, 0
@ CHECK: .eabi_attribute 42, 0
@ CHECK-OBJ: Tag: 42
@ CHECK-OBJ-NEXT: Value: 0
@ CHECK-OBJ-NEXT: TagName: MPextension_use
@ CHECK-OBJ-NEXT: Description: Not Permitted
.eabi_attribute Tag_DIV_use, 0
@ CHECK: .eabi_attribute 44, 0
@ CHECK-OBJ: Tag: 44
@ CHECK-OBJ-NEXT: Value: 0
@ CHECK-OBJ-NEXT: TagName: DIV_use
@ CHECK-OBJ-NEXT: Description: If Available
.eabi_attribute Tag_nodefaults, 0
@ CHECK: .eabi_attribute 64, 0
@ CHECK-OBJ: Tag: 64
@ CHECK-OBJ-NEXT: Value: 0
@ CHECK-OBJ-NEXT: TagName: nodefaults
@ CHECK-OBJ-NEXT: Description: Unspecified Tags UNDEFINED
.eabi_attribute Tag_also_compatible_with, "gnu"
@ CHECK: .eabi_attribute 65, "gnu"
@ CHECK-OBJ: Tag: 65
@ CHECK-OBJ-NEXT: TagName: also_compatible_with
@ CHECK-OBJ-NEXT: Value: GNU
.eabi_attribute Tag_T2EE_use, 0
@ CHECK: .eabi_attribute 66, 0
@ CHECK-OBJ: Tag: 66
@ CHECK-OBJ-NEXT: Value: 0
@ CHECK-OBJ-NEXT: TagName: T2EE_use
@ CHECK-OBJ-NEXT: Description: Not Permitted
.eabi_attribute Tag_conformance, "2.09"
@ CHECK: .eabi_attribute 67, "2.09"
@ CHECK-OBJ: Tag: 67
@ CHECK-OBJ-NEXT: TagName: conformance
@ CHECK-OBJ-NEXT: Value: 2.09
.eabi_attribute Tag_Virtualization_use, 0
@ CHECK: .eabi_attribute 68, 0
@ CHECK-OBJ: Tag: 68
@ CHECK-OBJ-NEXT: Value: 0
@ CHECK-OBJ-NEXT: TagName: Virtualization_use
@ CHECK-OBJ-NEXT: Description: Not Permitted
@ ===--- Compatibility Checks ---===