From 34ec84ec7f20a2c2ec2c37e53a9f182810371994 Mon Sep 17 00:00:00 2001 From: Charlie Turner Date: Tue, 4 Nov 2014 09:07:40 +0000 Subject: [PATCH] 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 --- llvm/test/MC/ARM/directive-eabi_attribute.s | 123 +++++++++++++++++--- 1 file changed, 106 insertions(+), 17 deletions(-) diff --git a/llvm/test/MC/ARM/directive-eabi_attribute.s b/llvm/test/MC/ARM/directive-eabi_attribute.s index 6c6ea1c14481..e2f1f9b01af2 100644 --- a/llvm/test/MC/ARM/directive-eabi_attribute.s +++ b/llvm/test/MC/ARM/directive-eabi_attribute.s @@ -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 - -@ -@ CHECK-OBJ: FormatVersion: 0x41 - -@ -@ CHECK-OBJ: SectionLength: 122 - -@ "aeabi\0" -@ CHECK-OBJ: Vendor: aeabi - -@ -@ CHECK-OBJ: Tag: Tag_File (0x1) - -@ -@ 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 ---===