diff options
Diffstat (limited to 'test/tools/llvm-readobj')
65 files changed, 1820 insertions, 316 deletions
diff --git a/test/tools/llvm-readobj/ARM/attribute-0.s b/test/tools/llvm-readobj/ARM/attribute-0.s new file mode 100644 index 000000000000..b761dd8f251f --- /dev/null +++ b/test/tools/llvm-readobj/ARM/attribute-0.s @@ -0,0 +1,234 @@ +@ RUN: llvm-mc -triple armv7-elf -filetype asm -o - %s | FileCheck %s +@ RUN: llvm-mc -triple armv7-eabi -filetype obj -o - %s \ +@ RUN: | llvm-readobj -arm-attributes - | FileCheck %s --check-prefix=CHECK-OBJ +.eabi_attribute Tag_CPU_arch, 0 +@CHECK: .eabi_attribute 6, 0 +@CHECK-OBJ: Tag: 6 +@CHECK-OBJ-NEXT: Value: 0 +@CHECK-OBJ-NEXT: TagName: CPU_arch +@CHECK-OBJ-NEXT: Description: Pre-v4 + +.eabi_attribute Tag_CPU_arch_profile, 0 +@CHECK: .eabi_attribute 7, 0 +@CHECK-OBJ: Tag: 7 +@CHECK-OBJ-NEXT: Value: 0 +@CHECK-OBJ-NEXT: TagName: CPU_arch_profile +@CHECK-OBJ-NEXT: Description: None + +.eabi_attribute Tag_ARM_ISA_use, 0 +@CHECK: .eabi_attribute 8, 0 +@CHECK-OBJ: Tag: 8 +@CHECK-OBJ-NEXT: Value: 0 +@CHECK-OBJ-NEXT: TagName: ARM_ISA_use +@CHECK-OBJ-NEXT: Description: Not Permitted + +.eabi_attribute Tag_THUMB_ISA_use, 0 +@CHECK: .eabi_attribute 9, 0 +@CHECK-OBJ: Tag: 9 +@CHECK-OBJ-NEXT: Value: 0 +@CHECK-OBJ-NEXT: TagName: THUMB_ISA_use +@CHECK-OBJ-NEXT: Description: Not Permitted + +.eabi_attribute Tag_FP_arch, 0 +@CHECK: .eabi_attribute 10, 0 +@CHECK-OBJ: Tag: 10 +@CHECK-OBJ-NEXT: Value: 0 +@CHECK-OBJ-NEXT: TagName: FP_arch +@CHECK-OBJ-NEXT: Description: Not Permitted + +.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, 0 +@CHECK: .eabi_attribute 12, 0 +@CHECK-OBJ: Tag: 12 +@CHECK-OBJ-NEXT: Value: 0 +@CHECK-OBJ-NEXT: TagName: Advanced_SIMD_arch +@CHECK-OBJ-NEXT: Description: Not Permitted + +.eabi_attribute Tag_PCS_config, 0 +@CHECK: .eabi_attribute 13, 0 +@CHECK-OBJ: Tag: 13 +@CHECK-OBJ-NEXT: Value: 0 +@CHECK-OBJ-NEXT: TagName: PCS_config +@CHECK-OBJ-NEXT: Description: None + +.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, 0 +@CHECK: .eabi_attribute 18, 0 +@CHECK-OBJ: Tag: 18 +@CHECK-OBJ-NEXT: Value: 0 +@CHECK-OBJ-NEXT: TagName: ABI_PCS_wchar_t +@CHECK-OBJ-NEXT: Description: Not Permitted + +.eabi_attribute Tag_ABI_FP_rounding, 0 +@CHECK: .eabi_attribute 19, 0 +@CHECK-OBJ: Tag: 19 +@CHECK-OBJ-NEXT: Value: 0 +@CHECK-OBJ-NEXT: TagName: ABI_FP_rounding +@CHECK-OBJ-NEXT: Description: IEEE-754 + +.eabi_attribute Tag_ABI_FP_denormal, 0 +@CHECK: .eabi_attribute 20, 0 +@CHECK-OBJ: Tag: 20 +@CHECK-OBJ-NEXT: Value: 0 +@CHECK-OBJ-NEXT: TagName: ABI_FP_denormal +@CHECK-OBJ-NEXT: Description: Unsupported + +.eabi_attribute Tag_ABI_FP_exceptions, 0 +@CHECK: .eabi_attribute 21, 0 +@CHECK-OBJ: Tag: 21 +@CHECK-OBJ-NEXT: Value: 0 +@CHECK-OBJ-NEXT: TagName: ABI_FP_exceptions +@CHECK-OBJ-NEXT: Description: Not Permitted + +.eabi_attribute Tag_ABI_FP_user_exceptions, 0 +@CHECK: .eabi_attribute 22, 0 +@CHECK-OBJ: Tag: 22 +@CHECK-OBJ-NEXT: Value: 0 +@CHECK-OBJ-NEXT: TagName: ABI_FP_user_exceptions +@CHECK-OBJ-NEXT: Description: Not Permitted + +.eabi_attribute Tag_ABI_FP_number_model, 0 +@CHECK: .eabi_attribute 23, 0 +@CHECK-OBJ: Tag: 23 +@CHECK-OBJ-NEXT: Value: 0 +@CHECK-OBJ-NEXT: TagName: ABI_FP_number_model +@CHECK-OBJ-NEXT: Description: Not Permitted + +.eabi_attribute Tag_ABI_align_needed, 0 +@CHECK: .eabi_attribute 24, 0 +@CHECK-OBJ: Tag: 24 +@CHECK-OBJ-NEXT: Value: 0 +@CHECK-OBJ-NEXT: TagName: ABI_align_needed +@CHECK-OBJ-NEXT: Description: Not Permitted + +.eabi_attribute Tag_ABI_align_preserved, 0 +@CHECK: .eabi_attribute 25, 0 +@CHECK-OBJ: Tag: 25 +@CHECK-OBJ-NEXT: Value: 0 +@CHECK-OBJ-NEXT: TagName: ABI_align_preserved +@CHECK-OBJ-NEXT: Description: Not Required + +.eabi_attribute Tag_ABI_enum_size, 0 +@CHECK: .eabi_attribute 26, 0 +@CHECK-OBJ: Tag: 26 +@CHECK-OBJ-NEXT: Value: 0 +@CHECK-OBJ-NEXT: TagName: ABI_enum_size +@CHECK-OBJ-NEXT: Description: Not Permitted + +.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, 0 +@CHECK: .eabi_attribute 28, 0 +@CHECK-OBJ: Tag: 28 +@CHECK-OBJ-NEXT: Value: 0 +@CHECK-OBJ-NEXT: TagName: ABI_VFP_args +@CHECK-OBJ-NEXT: Description: AAPCS + +.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_optimization_goals, 0 +@CHECK: .eabi_attribute 30, 0 +@CHECK-OBJ: Tag: 30 +@CHECK-OBJ-NEXT: Value: 0 +@CHECK-OBJ-NEXT: TagName: ABI_optimization_goals +@CHECK-OBJ-NEXT: Description: None + +.eabi_attribute Tag_ABI_FP_optimization_goals, 0 +@CHECK: .eabi_attribute 31, 0 +@CHECK-OBJ: Tag: 31 +@CHECK-OBJ-NEXT: Value: 0 +@CHECK-OBJ-NEXT: TagName: ABI_FP_optimization_goals +@CHECK-OBJ-NEXT: Description: None + +.eabi_attribute Tag_compatibility, 0, "ARM" +@CHECK: .eabi_attribute 32, 0 +@CHECK-OBJ: Tag: 32 +@CHECK-OBJ-NEXT: Value: 0, ARM +@CHECK-OBJ-NEXT: TagName: compatibility +@CHECK-OBJ-NEXT: Description: No Specific Requirements + +.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 Permitted + +.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_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 + diff --git a/test/tools/llvm-readobj/ARM/attribute-1.s b/test/tools/llvm-readobj/ARM/attribute-1.s new file mode 100644 index 000000000000..f433cbcc19b7 --- /dev/null +++ b/test/tools/llvm-readobj/ARM/attribute-1.s @@ -0,0 +1,220 @@ +@ RUN: llvm-mc -triple armv7-elf -filetype asm -o - %s | FileCheck %s +@ RUN: llvm-mc -triple armv7-eabi -filetype obj -o - %s \ +@ RUN: | llvm-readobj -arm-attributes - | FileCheck %s --check-prefix=CHECK-OBJ +.eabi_attribute Tag_CPU_arch, 1 +@CHECK: .eabi_attribute 6, 1 +@CHECK-OBJ: Tag: 6 +@CHECK-OBJ-NEXT: Value: 1 +@CHECK-OBJ-NEXT: TagName: CPU_arch +@CHECK-OBJ-NEXT: Description: ARM v4 + +.eabi_attribute Tag_ARM_ISA_use, 1 +@CHECK: .eabi_attribute 8, 1 +@CHECK-OBJ: Tag: 8 +@CHECK-OBJ-NEXT: Value: 1 +@CHECK-OBJ-NEXT: TagName: ARM_ISA_use +@CHECK-OBJ-NEXT: Description: Permitted + +.eabi_attribute Tag_THUMB_ISA_use, 1 +@CHECK: .eabi_attribute 9, 1 +@CHECK-OBJ: Tag: 9 +@CHECK-OBJ-NEXT: Value: 1 +@CHECK-OBJ-NEXT: TagName: THUMB_ISA_use +@CHECK-OBJ-NEXT: Description: Thumb-1 + +.eabi_attribute Tag_FP_arch, 1 +@CHECK: .eabi_attribute 10, 1 +@CHECK-OBJ: Tag: 10 +@CHECK-OBJ-NEXT: Value: 1 +@CHECK-OBJ-NEXT: TagName: FP_arch +@CHECK-OBJ-NEXT: Description: VFPv1 + +.eabi_attribute Tag_WMMX_arch, 1 +@CHECK: .eabi_attribute 11, 1 +@CHECK-OBJ: Tag: 11 +@CHECK-OBJ-NEXT: Value: 1 +@CHECK-OBJ-NEXT: TagName: WMMX_arch +@CHECK-OBJ-NEXT: Description: WMMXv1 + +.eabi_attribute Tag_Advanced_SIMD_arch, 1 +@CHECK: .eabi_attribute 12, 1 +@CHECK-OBJ: Tag: 12 +@CHECK-OBJ-NEXT: Value: 1 +@CHECK-OBJ-NEXT: TagName: Advanced_SIMD_arch +@CHECK-OBJ-NEXT: Description: NEONv1 + +.eabi_attribute Tag_PCS_config, 1 +@CHECK: .eabi_attribute 13, 1 +@CHECK-OBJ: Tag: 13 +@CHECK-OBJ-NEXT: Value: 1 +@CHECK-OBJ-NEXT: TagName: PCS_config +@CHECK-OBJ-NEXT: Description: Bare Platform + +.eabi_attribute Tag_ABI_PCS_R9_use, 1 +@CHECK: .eabi_attribute 14, 1 +@CHECK-OBJ: Tag: 14 +@CHECK-OBJ-NEXT: Value: 1 +@CHECK-OBJ-NEXT: TagName: ABI_PCS_R9_use +@CHECK-OBJ-NEXT: Description: Static Base + +.eabi_attribute Tag_ABI_PCS_RW_data, 1 +@CHECK: .eabi_attribute 15, 1 +@CHECK-OBJ: Tag: 15 +@CHECK-OBJ-NEXT: Value: 1 +@CHECK-OBJ-NEXT: TagName: ABI_PCS_RW_data +@CHECK-OBJ-NEXT: Description: PC-relative + +.eabi_attribute Tag_ABI_PCS_RO_data, 1 +@CHECK: .eabi_attribute 16, 1 +@CHECK-OBJ: Tag: 16 +@CHECK-OBJ-NEXT: Value: 1 +@CHECK-OBJ-NEXT: TagName: ABI_PCS_RO_data +@CHECK-OBJ-NEXT: Description: PC-relative + +.eabi_attribute Tag_ABI_PCS_GOT_use, 1 +@CHECK: .eabi_attribute 17, 1 +@CHECK-OBJ: Tag: 17 +@CHECK-OBJ-NEXT: Value: 1 +@CHECK-OBJ-NEXT: TagName: ABI_PCS_GOT_use +@CHECK-OBJ-NEXT: Description: Direct + +.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, 1 +@CHECK: .eabi_attribute 20, 1 +@CHECK-OBJ: Tag: 20 +@CHECK-OBJ-NEXT: Value: 1 +@CHECK-OBJ-NEXT: TagName: ABI_FP_denormal +@CHECK-OBJ-NEXT: Description: IEEE-754 + +.eabi_attribute Tag_ABI_FP_exceptions, 1 +@CHECK: .eabi_attribute 21, 1 +@CHECK-OBJ: Tag: 21 +@CHECK-OBJ-NEXT: Value: 1 +@CHECK-OBJ-NEXT: TagName: ABI_FP_exceptions +@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, 1 +@CHECK: .eabi_attribute 23, 1 +@CHECK-OBJ: Tag: 23 +@CHECK-OBJ-NEXT: Value: 1 +@CHECK-OBJ-NEXT: TagName: ABI_FP_number_model +@CHECK-OBJ-NEXT: Description: Finite Only + +.eabi_attribute Tag_ABI_align_needed, 1 +@CHECK: .eabi_attribute 24, 1 +@CHECK-OBJ: Tag: 24 +@CHECK-OBJ-NEXT: Value: 1 +@CHECK-OBJ-NEXT: TagName: ABI_align_needed +@CHECK-OBJ-NEXT: Description: 8-byte alignment + +.eabi_attribute Tag_ABI_align_preserved, 1 +@CHECK: .eabi_attribute 25, 1 +@CHECK-OBJ: Tag: 25 +@CHECK-OBJ-NEXT: Value: 1 +@CHECK-OBJ-NEXT: TagName: ABI_align_preserved +@CHECK-OBJ-NEXT: Description: 8-byte data alignment + +.eabi_attribute Tag_ABI_enum_size, 1 +@CHECK: .eabi_attribute 26, 1 +@CHECK-OBJ: Tag: 26 +@CHECK-OBJ-NEXT: Value: 1 +@CHECK-OBJ-NEXT: TagName: ABI_enum_size +@CHECK-OBJ-NEXT: Description: Packed + +.eabi_attribute Tag_ABI_HardFP_use, 1 +@CHECK: .eabi_attribute 27, 1 +@CHECK-OBJ: Tag: 27 +@CHECK-OBJ-NEXT: Value: 1 +@CHECK-OBJ-NEXT: TagName: ABI_HardFP_use +@CHECK-OBJ-NEXT: Description: Single-Precision + +.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, 1 +@CHECK: .eabi_attribute 29, 1 +@CHECK-OBJ: Tag: 29 +@CHECK-OBJ-NEXT: Value: 1 +@CHECK-OBJ-NEXT: TagName: ABI_WMMX_args +@CHECK-OBJ-NEXT: Description: iWMMX + +.eabi_attribute Tag_ABI_optimization_goals, 1 +@CHECK: .eabi_attribute 30, 1 +@CHECK-OBJ: Tag: 30 +@CHECK-OBJ-NEXT: Value: 1 +@CHECK-OBJ-NEXT: TagName: ABI_optimization_goals +@CHECK-OBJ-NEXT: Description: Speed + +.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 +@CHECK-OBJ: Tag: 32 +@CHECK-OBJ-NEXT: Value: 1, +@CHECK-OBJ-NEXT: TagName: compatibility +@CHECK-OBJ-NEXT: Description: AEABI Conformant + +.eabi_attribute Tag_CPU_unaligned_access, 1 +@CHECK: .eabi_attribute 34, 1 +@CHECK-OBJ: Tag: 34 +@CHECK-OBJ-NEXT: Value: 1 +@CHECK-OBJ-NEXT: TagName: CPU_unaligned_access +@CHECK-OBJ-NEXT: Description: v6-style + +.eabi_attribute Tag_FP_HP_extension, 1 +@CHECK: .eabi_attribute 36, 1 +@CHECK-OBJ: Tag: 36 +@CHECK-OBJ-NEXT: Value: 1 +@CHECK-OBJ-NEXT: TagName: FP_HP_extension +@CHECK-OBJ-NEXT: Description: Permitted + +.eabi_attribute Tag_ABI_FP_16bit_format, 1 +@CHECK: .eabi_attribute 38, 1 +@CHECK-OBJ: Tag: 38 +@CHECK-OBJ-NEXT: Value: 1 +@CHECK-OBJ-NEXT: TagName: ABI_FP_16bit_format +@CHECK-OBJ-NEXT: Description: IEEE-754 + +.eabi_attribute Tag_MPextension_use, 1 +@CHECK: .eabi_attribute 42, 1 +@CHECK-OBJ: Tag: 42 +@CHECK-OBJ-NEXT: Value: 1 +@CHECK-OBJ-NEXT: TagName: MPextension_use +@CHECK-OBJ-NEXT: Description: Permitted + +.eabi_attribute Tag_DIV_use, 1 +@CHECK: .eabi_attribute 44, 1 +@CHECK-OBJ: Tag: 44 +@CHECK-OBJ-NEXT: Value: 1 +@CHECK-OBJ-NEXT: TagName: DIV_use +@CHECK-OBJ-NEXT: Description: Not Permitted + +.eabi_attribute Tag_Virtualization_use, 1 +@CHECK: .eabi_attribute 68, 1 +@CHECK-OBJ: Tag: 68 +@CHECK-OBJ-NEXT: Value: 1 +@CHECK-OBJ-NEXT: TagName: Virtualization_use +@CHECK-OBJ-NEXT: Description: TrustZone + diff --git a/test/tools/llvm-readobj/ARM/attribute-10.s b/test/tools/llvm-readobj/ARM/attribute-10.s new file mode 100644 index 000000000000..667db8c56405 --- /dev/null +++ b/test/tools/llvm-readobj/ARM/attribute-10.s @@ -0,0 +1,24 @@ +@ RUN: llvm-mc -triple armv7-elf -filetype asm -o - %s | FileCheck %s +@ RUN: llvm-mc -triple armv7-eabi -filetype obj -o - %s \ +@ RUN: | llvm-readobj -arm-attributes - | FileCheck %s --check-prefix=CHECK-OBJ +.eabi_attribute Tag_CPU_arch, 10 +@CHECK: .eabi_attribute 6, 10 +@CHECK-OBJ: Tag: 6 +@CHECK-OBJ-NEXT: Value: 10 +@CHECK-OBJ-NEXT: TagName: CPU_arch +@CHECK-OBJ-NEXT: Description: ARM v7 + +.eabi_attribute Tag_ABI_align_needed, 10 +@CHECK: .eabi_attribute 24, 10 +@CHECK-OBJ: Tag: 24 +@CHECK-OBJ-NEXT: Value: 10 +@CHECK-OBJ-NEXT: TagName: ABI_align_needed +@CHECK-OBJ-NEXT: Description: 8-byte alignment, 1024-byte extended alignment + +.eabi_attribute Tag_ABI_align_preserved, 10 +@CHECK: .eabi_attribute 25, 10 +@CHECK-OBJ: Tag: 25 +@CHECK-OBJ-NEXT: Value: 10 +@CHECK-OBJ-NEXT: TagName: ABI_align_preserved +@CHECK-OBJ-NEXT: Description: 8-byte stack alignment, 1024-byte data alignment + diff --git a/test/tools/llvm-readobj/ARM/attribute-11.s b/test/tools/llvm-readobj/ARM/attribute-11.s new file mode 100644 index 000000000000..2d8e43b58ce6 --- /dev/null +++ b/test/tools/llvm-readobj/ARM/attribute-11.s @@ -0,0 +1,24 @@ +@ RUN: llvm-mc -triple armv7-elf -filetype asm -o - %s | FileCheck %s +@ RUN: llvm-mc -triple armv7-eabi -filetype obj -o - %s \ +@ RUN: | llvm-readobj -arm-attributes - | FileCheck %s --check-prefix=CHECK-OBJ +.eabi_attribute Tag_CPU_arch, 11 +@CHECK: .eabi_attribute 6, 11 +@CHECK-OBJ: Tag: 6 +@CHECK-OBJ-NEXT: Value: 11 +@CHECK-OBJ-NEXT: TagName: CPU_arch +@CHECK-OBJ-NEXT: Description: ARM v6-M + +.eabi_attribute Tag_ABI_align_needed, 11 +@CHECK: .eabi_attribute 24, 11 +@CHECK-OBJ: Tag: 24 +@CHECK-OBJ-NEXT: Value: 11 +@CHECK-OBJ-NEXT: TagName: ABI_align_needed +@CHECK-OBJ-NEXT: Description: 8-byte alignment, 2048-byte extended alignment + +.eabi_attribute Tag_ABI_align_preserved, 11 +@CHECK: .eabi_attribute 25, 11 +@CHECK-OBJ: Tag: 25 +@CHECK-OBJ-NEXT: Value: 11 +@CHECK-OBJ-NEXT: TagName: ABI_align_preserved +@CHECK-OBJ-NEXT: Description: 8-byte stack alignment, 2048-byte data alignment + diff --git a/test/tools/llvm-readobj/ARM/attribute-12.s b/test/tools/llvm-readobj/ARM/attribute-12.s new file mode 100644 index 000000000000..4387527a3f7d --- /dev/null +++ b/test/tools/llvm-readobj/ARM/attribute-12.s @@ -0,0 +1,24 @@ +@ RUN: llvm-mc -triple armv7-elf -filetype asm -o - %s | FileCheck %s +@ RUN: llvm-mc -triple armv7-eabi -filetype obj -o - %s \ +@ RUN: | llvm-readobj -arm-attributes - | FileCheck %s --check-prefix=CHECK-OBJ +.eabi_attribute Tag_CPU_arch, 12 +@CHECK: .eabi_attribute 6, 12 +@CHECK-OBJ: Tag: 6 +@CHECK-OBJ-NEXT: Value: 12 +@CHECK-OBJ-NEXT: TagName: CPU_arch +@CHECK-OBJ-NEXT: Description: ARM v6S-M + +.eabi_attribute Tag_ABI_align_needed, 12 +@CHECK: .eabi_attribute 24, 12 +@CHECK-OBJ: Tag: 24 +@CHECK-OBJ-NEXT: Value: 12 +@CHECK-OBJ-NEXT: TagName: ABI_align_needed +@CHECK-OBJ-NEXT: Description: 8-byte alignment, 4096-byte extended alignment + +.eabi_attribute Tag_ABI_align_preserved, 12 +@CHECK: .eabi_attribute 25, 12 +@CHECK-OBJ: Tag: 25 +@CHECK-OBJ-NEXT: Value: 12 +@CHECK-OBJ-NEXT: TagName: ABI_align_preserved +@CHECK-OBJ-NEXT: Description: 8-byte stack alignment, 4096-byte data alignment + diff --git a/test/tools/llvm-readobj/ARM/attribute-13.s b/test/tools/llvm-readobj/ARM/attribute-13.s new file mode 100644 index 000000000000..25ac5f19f6e3 --- /dev/null +++ b/test/tools/llvm-readobj/ARM/attribute-13.s @@ -0,0 +1,10 @@ +@ RUN: llvm-mc -triple armv7-elf -filetype asm -o - %s | FileCheck %s +@ RUN: llvm-mc -triple armv7-eabi -filetype obj -o - %s \ +@ RUN: | llvm-readobj -arm-attributes - | FileCheck %s --check-prefix=CHECK-OBJ +.eabi_attribute Tag_CPU_arch, 13 +@CHECK: .eabi_attribute 6, 13 +@CHECK-OBJ: Tag: 6 +@CHECK-OBJ-NEXT: Value: 13 +@CHECK-OBJ-NEXT: TagName: CPU_arch +@CHECK-OBJ-NEXT: Description: ARM v7E-M + diff --git a/test/tools/llvm-readobj/ARM/attribute-136.s b/test/tools/llvm-readobj/ARM/attribute-136.s new file mode 100644 index 000000000000..a2d2a9aa411c --- /dev/null +++ b/test/tools/llvm-readobj/ARM/attribute-136.s @@ -0,0 +1,10 @@ +@ RUN: llvm-mc -triple armv7-elf -filetype asm -o - %s | FileCheck %s +@ RUN: llvm-mc -triple armv7-eabi -filetype obj -o - %s \ +@ RUN: | llvm-readobj -arm-attributes - | FileCheck %s --check-prefix=CHECK-OBJ +.eabi_attribute Tag_compatibility, 136, "Foo Corp" +@CHECK: .eabi_attribute 32, 136 +@CHECK-OBJ: Tag: 32 +@CHECK-OBJ-NEXT: Value: 136, Foo Corp +@CHECK-OBJ-NEXT: TagName: compatibility +@CHECK-OBJ-NEXT: Description: AEABI Non-Conformant + diff --git a/test/tools/llvm-readobj/ARM/attribute-14.s b/test/tools/llvm-readobj/ARM/attribute-14.s new file mode 100644 index 000000000000..e0d8e468daf9 --- /dev/null +++ b/test/tools/llvm-readobj/ARM/attribute-14.s @@ -0,0 +1,10 @@ +@ RUN: llvm-mc -triple armv7-elf -filetype asm -o - %s | FileCheck %s +@ RUN: llvm-mc -triple armv7-eabi -filetype obj -o - %s \ +@ RUN: | llvm-readobj -arm-attributes - | FileCheck %s --check-prefix=CHECK-OBJ +.eabi_attribute Tag_CPU_arch, 14 +@CHECK: .eabi_attribute 6, 14 +@CHECK-OBJ: Tag: 6 +@CHECK-OBJ-NEXT: Value: 14 +@CHECK-OBJ-NEXT: TagName: CPU_arch +@CHECK-OBJ-NEXT: Description: ARM v8 + diff --git a/test/tools/llvm-readobj/ARM/attribute-15.s b/test/tools/llvm-readobj/ARM/attribute-15.s new file mode 100644 index 000000000000..7877ce7aeb71 --- /dev/null +++ b/test/tools/llvm-readobj/ARM/attribute-15.s @@ -0,0 +1,10 @@ +@ RUN: llvm-mc -triple armv7-elf -filetype asm -o - %s | FileCheck %s +@ RUN: llvm-mc -triple armv7-eabi -filetype obj -o - %s \ +@ RUN: | llvm-readobj -arm-attributes - | FileCheck %s --check-prefix=CHECK-OBJ +.eabi_attribute Tag_compatibility, 15, "Longer Corporation NaMe" +@CHECK: .eabi_attribute 32, 15 +@CHECK-OBJ: Tag: 32 +@CHECK-OBJ-NEXT: Value: 15, Longer Corporation NaMe +@CHECK-OBJ-NEXT: TagName: compatibility +@CHECK-OBJ-NEXT: Description: AEABI Non-Conformant + diff --git a/test/tools/llvm-readobj/ARM/attribute-2.s b/test/tools/llvm-readobj/ARM/attribute-2.s new file mode 100644 index 000000000000..21ee41fbc090 --- /dev/null +++ b/test/tools/llvm-readobj/ARM/attribute-2.s @@ -0,0 +1,178 @@ +@ RUN: llvm-mc -triple armv7-elf -filetype asm -o - %s | FileCheck %s +@ RUN: llvm-mc -triple armv7-eabi -filetype obj -o - %s \ +@ RUN: | llvm-readobj -arm-attributes - | FileCheck %s --check-prefix=CHECK-OBJ +.eabi_attribute Tag_CPU_arch, 2 +@CHECK: .eabi_attribute 6, 2 +@CHECK-OBJ: Tag: 6 +@CHECK-OBJ-NEXT: Value: 2 +@CHECK-OBJ-NEXT: TagName: CPU_arch +@CHECK-OBJ-NEXT: Description: ARM v4T + +.eabi_attribute Tag_THUMB_ISA_use, 2 +@CHECK: .eabi_attribute 9, 2 +@CHECK-OBJ: Tag: 9 +@CHECK-OBJ-NEXT: Value: 2 +@CHECK-OBJ-NEXT: TagName: THUMB_ISA_use +@CHECK-OBJ-NEXT: Description: Thumb-2 + +.eabi_attribute Tag_FP_arch, 2 +@CHECK: .eabi_attribute 10, 2 +@CHECK-OBJ: Tag: 10 +@CHECK-OBJ-NEXT: Value: 2 +@CHECK-OBJ-NEXT: TagName: FP_arch +@CHECK-OBJ-NEXT: Description: VFPv2 + +.eabi_attribute Tag_WMMX_arch, 2 +@CHECK: .eabi_attribute 11, 2 +@CHECK-OBJ: Tag: 11 +@CHECK-OBJ-NEXT: Value: 2 +@CHECK-OBJ-NEXT: TagName: WMMX_arch +@CHECK-OBJ-NEXT: Description: WMMXv2 + +.eabi_attribute Tag_Advanced_SIMD_arch, 2 +@CHECK: .eabi_attribute 12, 2 +@CHECK-OBJ: Tag: 12 +@CHECK-OBJ-NEXT: Value: 2 +@CHECK-OBJ-NEXT: TagName: Advanced_SIMD_arch +@CHECK-OBJ-NEXT: Description: NEONv2+FMA + +.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, 2 +@CHECK: .eabi_attribute 14, 2 +@CHECK-OBJ: Tag: 14 +@CHECK-OBJ-NEXT: Value: 2 +@CHECK-OBJ-NEXT: TagName: ABI_PCS_R9_use +@CHECK-OBJ-NEXT: Description: TLS + +.eabi_attribute Tag_ABI_PCS_RW_data, 2 +@CHECK: .eabi_attribute 15, 2 +@CHECK-OBJ: Tag: 15 +@CHECK-OBJ-NEXT: Value: 2 +@CHECK-OBJ-NEXT: TagName: ABI_PCS_RW_data +@CHECK-OBJ-NEXT: Description: SB-relative + +.eabi_attribute Tag_ABI_PCS_RO_data, 2 +@CHECK: .eabi_attribute 16, 2 +@CHECK-OBJ: Tag: 16 +@CHECK-OBJ-NEXT: Value: 2 +@CHECK-OBJ-NEXT: TagName: ABI_PCS_RO_data +@CHECK-OBJ-NEXT: Description: Not Permitted + +.eabi_attribute Tag_ABI_PCS_GOT_use, 2 +@CHECK: .eabi_attribute 17, 2 +@CHECK-OBJ: Tag: 17 +@CHECK-OBJ-NEXT: Value: 2 +@CHECK-OBJ-NEXT: TagName: ABI_PCS_GOT_use +@CHECK-OBJ-NEXT: Description: GOT-Indirect + +.eabi_attribute Tag_ABI_PCS_wchar_t, 2 +@CHECK: .eabi_attribute 18, 2 +@CHECK-OBJ: Tag: 18 +@CHECK-OBJ-NEXT: Value: 2 +@CHECK-OBJ-NEXT: TagName: ABI_PCS_wchar_t +@CHECK-OBJ-NEXT: Description: 2-byte + +.eabi_attribute Tag_ABI_FP_denormal, 2 +@CHECK: .eabi_attribute 20, 2 +@CHECK-OBJ: Tag: 20 +@CHECK-OBJ-NEXT: Value: 2 +@CHECK-OBJ-NEXT: TagName: ABI_FP_denormal +@CHECK-OBJ-NEXT: Description: Sign Only + +.eabi_attribute Tag_ABI_FP_number_model, 2 +@CHECK: .eabi_attribute 23, 2 +@CHECK-OBJ: Tag: 23 +@CHECK-OBJ-NEXT: Value: 2 +@CHECK-OBJ-NEXT: TagName: ABI_FP_number_model +@CHECK-OBJ-NEXT: Description: RTABI + +.eabi_attribute Tag_ABI_align_needed, 2 +@CHECK: .eabi_attribute 24, 2 +@CHECK-OBJ: Tag: 24 +@CHECK-OBJ-NEXT: Value: 2 +@CHECK-OBJ-NEXT: TagName: ABI_align_needed +@CHECK-OBJ-NEXT: Description: 4-byte alignment + +.eabi_attribute Tag_ABI_align_preserved, 2 +@CHECK: .eabi_attribute 25, 2 +@CHECK-OBJ: Tag: 25 +@CHECK-OBJ-NEXT: Value: 2 +@CHECK-OBJ-NEXT: TagName: ABI_align_preserved +@CHECK-OBJ-NEXT: Description: 8-byte data and code alignment + +.eabi_attribute Tag_ABI_enum_size, 2 +@CHECK: .eabi_attribute 26, 2 +@CHECK-OBJ: Tag: 26 +@CHECK-OBJ-NEXT: Value: 2 +@CHECK-OBJ-NEXT: TagName: ABI_enum_size +@CHECK-OBJ-NEXT: Description: Int32 + +.eabi_attribute Tag_ABI_HardFP_use, 2 +@CHECK: .eabi_attribute 27, 2 +@CHECK-OBJ: Tag: 27 +@CHECK-OBJ-NEXT: Value: 2 +@CHECK-OBJ-NEXT: TagName: ABI_HardFP_use +@CHECK-OBJ-NEXT: Description: Reserved + +.eabi_attribute Tag_ABI_VFP_args, 2 +@CHECK: .eabi_attribute 28, 2 +@CHECK-OBJ: Tag: 28 +@CHECK-OBJ-NEXT: Value: 2 +@CHECK-OBJ-NEXT: TagName: ABI_VFP_args +@CHECK-OBJ-NEXT: Description: Custom + +.eabi_attribute Tag_ABI_WMMX_args, 2 +@CHECK: .eabi_attribute 29, 2 +@CHECK-OBJ: Tag: 29 +@CHECK-OBJ-NEXT: Value: 2 +@CHECK-OBJ-NEXT: TagName: ABI_WMMX_args +@CHECK-OBJ-NEXT: Description: Custom + +.eabi_attribute Tag_ABI_optimization_goals, 2 +@CHECK: .eabi_attribute 30, 2 +@CHECK-OBJ: Tag: 30 +@CHECK-OBJ-NEXT: Value: 2 +@CHECK-OBJ-NEXT: TagName: ABI_optimization_goals +@CHECK-OBJ-NEXT: Description: Aggressive Speed + +.eabi_attribute Tag_ABI_FP_optimization_goals, 2 +@CHECK: .eabi_attribute 31, 2 +@CHECK-OBJ: Tag: 31 +@CHECK-OBJ-NEXT: Value: 2 +@CHECK-OBJ-NEXT: TagName: ABI_FP_optimization_goals +@CHECK-OBJ-NEXT: Description: Aggressive Speed + +.eabi_attribute Tag_compatibility, 2, "" +@CHECK: .eabi_attribute 32, 2 +@CHECK-OBJ: Tag: 32 +@CHECK-OBJ-NEXT: Value: 2, +@CHECK-OBJ-NEXT: TagName: compatibility +@CHECK-OBJ-NEXT: Description: AEABI Non-Conformant + +.eabi_attribute Tag_ABI_FP_16bit_format, 2 +@CHECK: .eabi_attribute 38, 2 +@CHECK-OBJ: Tag: 38 +@CHECK-OBJ-NEXT: Value: 2 +@CHECK-OBJ-NEXT: TagName: ABI_FP_16bit_format +@CHECK-OBJ-NEXT: Description: VFPv3 + +.eabi_attribute Tag_DIV_use, 2 +@CHECK: .eabi_attribute 44, 2 +@CHECK-OBJ: Tag: 44 +@CHECK-OBJ-NEXT: Value: 2 +@CHECK-OBJ-NEXT: TagName: DIV_use +@CHECK-OBJ-NEXT: Description: Permitted + +.eabi_attribute Tag_Virtualization_use, 2 +@CHECK: .eabi_attribute 68, 2 +@CHECK-OBJ: Tag: 68 +@CHECK-OBJ-NEXT: Value: 2 +@CHECK-OBJ-NEXT: TagName: Virtualization_use +@CHECK-OBJ-NEXT: Description: Virtualization Extensions + diff --git a/test/tools/llvm-readobj/ARM/attribute-3.s b/test/tools/llvm-readobj/ARM/attribute-3.s new file mode 100644 index 000000000000..ad2de257ecc6 --- /dev/null +++ b/test/tools/llvm-readobj/ARM/attribute-3.s @@ -0,0 +1,108 @@ +@ RUN: llvm-mc -triple armv7-elf -filetype asm -o - %s | FileCheck %s +@ RUN: llvm-mc -triple armv7-eabi -filetype obj -o - %s \ +@ RUN: | llvm-readobj -arm-attributes - | FileCheck %s --check-prefix=CHECK-OBJ +.eabi_attribute Tag_CPU_arch, 3 +@CHECK: .eabi_attribute 6, 3 +@CHECK-OBJ: Tag: 6 +@CHECK-OBJ-NEXT: Value: 3 +@CHECK-OBJ-NEXT: TagName: CPU_arch +@CHECK-OBJ-NEXT: Description: ARM v5T + +.eabi_attribute Tag_FP_arch, 3 +@CHECK: .eabi_attribute 10, 3 +@CHECK-OBJ: Tag: 10 +@CHECK-OBJ-NEXT: Value: 3 +@CHECK-OBJ-NEXT: TagName: FP_arch +@CHECK-OBJ-NEXT: Description: VFPv3 + +.eabi_attribute Tag_Advanced_SIMD_arch, 3 +@CHECK: .eabi_attribute 12, 3 +@CHECK-OBJ: Tag: 12 +@CHECK-OBJ-NEXT: Value: 3 +@CHECK-OBJ-NEXT: TagName: Advanced_SIMD_arch +@CHECK-OBJ-NEXT: Description: ARMv8-a NEON + +.eabi_attribute Tag_PCS_config, 3 +@CHECK: .eabi_attribute 13, 3 +@CHECK-OBJ: Tag: 13 +@CHECK-OBJ-NEXT: Value: 3 +@CHECK-OBJ-NEXT: TagName: PCS_config +@CHECK-OBJ-NEXT: Description: Linux DSO + +.eabi_attribute Tag_ABI_PCS_R9_use, 3 +@CHECK: .eabi_attribute 14, 3 +@CHECK-OBJ: Tag: 14 +@CHECK-OBJ-NEXT: Value: 3 +@CHECK-OBJ-NEXT: TagName: ABI_PCS_R9_use +@CHECK-OBJ-NEXT: Description: Unused + +.eabi_attribute Tag_ABI_PCS_RW_data, 3 +@CHECK: .eabi_attribute 15, 3 +@CHECK-OBJ: Tag: 15 +@CHECK-OBJ-NEXT: Value: 3 +@CHECK-OBJ-NEXT: TagName: ABI_PCS_RW_data +@CHECK-OBJ-NEXT: Description: Not Permitted + +.eabi_attribute Tag_ABI_FP_number_model, 3 +@CHECK: .eabi_attribute 23, 3 +@CHECK-OBJ: Tag: 23 +@CHECK-OBJ-NEXT: Value: 3 +@CHECK-OBJ-NEXT: TagName: ABI_FP_number_model +@CHECK-OBJ-NEXT: Description: IEEE-754 + +.eabi_attribute Tag_ABI_align_needed, 3 +@CHECK: .eabi_attribute 24, 3 +@CHECK-OBJ: Tag: 24 +@CHECK-OBJ-NEXT: Value: 3 +@CHECK-OBJ-NEXT: TagName: ABI_align_needed +@CHECK-OBJ-NEXT: Description: Reserved + +.eabi_attribute Tag_ABI_align_preserved, 3 +@CHECK: .eabi_attribute 25, 3 +@CHECK-OBJ: Tag: 25 +@CHECK-OBJ-NEXT: Value: 3 +@CHECK-OBJ-NEXT: TagName: ABI_align_preserved +@CHECK-OBJ-NEXT: Description: Reserved + +.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, 3 +@CHECK: .eabi_attribute 27, 3 +@CHECK-OBJ: Tag: 27 +@CHECK-OBJ-NEXT: Value: 3 +@CHECK-OBJ-NEXT: TagName: ABI_HardFP_use +@CHECK-OBJ-NEXT: Description: Tag_FP_arch (deprecated) + +.eabi_attribute Tag_ABI_VFP_args, 3 +@CHECK: .eabi_attribute 28, 3 +@CHECK-OBJ: Tag: 28 +@CHECK-OBJ-NEXT: Value: 3 +@CHECK-OBJ-NEXT: TagName: ABI_VFP_args +@CHECK-OBJ-NEXT: Description: Not Permitted + +.eabi_attribute Tag_ABI_optimization_goals, 3 +@CHECK: .eabi_attribute 30, 3 +@CHECK-OBJ: Tag: 30 +@CHECK-OBJ-NEXT: Value: 3 +@CHECK-OBJ-NEXT: TagName: ABI_optimization_goals +@CHECK-OBJ-NEXT: Description: Size + +.eabi_attribute Tag_ABI_FP_optimization_goals, 3 +@CHECK: .eabi_attribute 31, 3 +@CHECK-OBJ: Tag: 31 +@CHECK-OBJ-NEXT: Value: 3 +@CHECK-OBJ-NEXT: TagName: ABI_FP_optimization_goals +@CHECK-OBJ-NEXT: Description: Size + +.eabi_attribute Tag_Virtualization_use, 3 +@CHECK: .eabi_attribute 68, 3 +@CHECK-OBJ: Tag: 68 +@CHECK-OBJ-NEXT: Value: 3 +@CHECK-OBJ-NEXT: TagName: Virtualization_use +@CHECK-OBJ-NEXT: Description: TrustZone + Virtualization Extensions + diff --git a/test/tools/llvm-readobj/ARM/attribute-4.s b/test/tools/llvm-readobj/ARM/attribute-4.s new file mode 100644 index 000000000000..dd0a4a6d6a73 --- /dev/null +++ b/test/tools/llvm-readobj/ARM/attribute-4.s @@ -0,0 +1,59 @@ +@ RUN: llvm-mc -triple armv7-elf -filetype asm -o - %s | FileCheck %s +@ RUN: llvm-mc -triple armv7-eabi -filetype obj -o - %s \ +@ RUN: | llvm-readobj -arm-attributes - | FileCheck %s --check-prefix=CHECK-OBJ +.eabi_attribute Tag_CPU_arch, 4 +@CHECK: .eabi_attribute 6, 4 +@CHECK-OBJ: Tag: 6 +@CHECK-OBJ-NEXT: Value: 4 +@CHECK-OBJ-NEXT: TagName: CPU_arch +@CHECK-OBJ-NEXT: Description: ARM v5TE + +.eabi_attribute Tag_FP_arch, 4 +@CHECK: .eabi_attribute 10, 4 +@CHECK-OBJ: Tag: 10 +@CHECK-OBJ-NEXT: Value: 4 +@CHECK-OBJ-NEXT: TagName: FP_arch +@CHECK-OBJ-NEXT: Description: VFPv3-D16 + +.eabi_attribute Tag_PCS_config, 4 +@CHECK: .eabi_attribute 13, 4 +@CHECK-OBJ: Tag: 13 +@CHECK-OBJ-NEXT: Value: 4 +@CHECK-OBJ-NEXT: TagName: PCS_config +@CHECK-OBJ-NEXT: Description: Palm OS 2004 + +.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_align_needed, 4 +@CHECK: .eabi_attribute 24, 4 +@CHECK-OBJ: Tag: 24 +@CHECK-OBJ-NEXT: Value: 4 +@CHECK-OBJ-NEXT: TagName: ABI_align_needed +@CHECK-OBJ-NEXT: Description: 8-byte alignment, 16-byte extended alignment + +.eabi_attribute Tag_ABI_align_preserved, 4 +@CHECK: .eabi_attribute 25, 4 +@CHECK-OBJ: Tag: 25 +@CHECK-OBJ-NEXT: Value: 4 +@CHECK-OBJ-NEXT: TagName: ABI_align_preserved +@CHECK-OBJ-NEXT: Description: 8-byte stack alignment, 16-byte data alignment + +.eabi_attribute Tag_ABI_optimization_goals, 4 +@CHECK: .eabi_attribute 30, 4 +@CHECK-OBJ: Tag: 30 +@CHECK-OBJ-NEXT: Value: 4 +@CHECK-OBJ-NEXT: TagName: ABI_optimization_goals +@CHECK-OBJ-NEXT: Description: Aggressive Size + +.eabi_attribute Tag_ABI_FP_optimization_goals, 4 +@CHECK: .eabi_attribute 31, 4 +@CHECK-OBJ: Tag: 31 +@CHECK-OBJ-NEXT: Value: 4 +@CHECK-OBJ-NEXT: TagName: ABI_FP_optimization_goals +@CHECK-OBJ-NEXT: Description: Aggressive Size + diff --git a/test/tools/llvm-readobj/ARM/attribute-5.s b/test/tools/llvm-readobj/ARM/attribute-5.s new file mode 100644 index 000000000000..97e37e2f460f --- /dev/null +++ b/test/tools/llvm-readobj/ARM/attribute-5.s @@ -0,0 +1,52 @@ +@ RUN: llvm-mc -triple armv7-elf -filetype asm -o - %s | FileCheck %s +@ RUN: llvm-mc -triple armv7-eabi -filetype obj -o - %s \ +@ RUN: | llvm-readobj -arm-attributes - | FileCheck %s --check-prefix=CHECK-OBJ +.eabi_attribute Tag_CPU_arch, 5 +@CHECK: .eabi_attribute 6, 5 +@CHECK-OBJ: Tag: 6 +@CHECK-OBJ-NEXT: Value: 5 +@CHECK-OBJ-NEXT: TagName: CPU_arch +@CHECK-OBJ-NEXT: Description: ARM v5TEJ + +.eabi_attribute Tag_FP_arch, 5 +@CHECK: .eabi_attribute 10, 5 +@CHECK-OBJ: Tag: 10 +@CHECK-OBJ-NEXT: Value: 5 +@CHECK-OBJ-NEXT: TagName: FP_arch +@CHECK-OBJ-NEXT: Description: VFPv4 + +.eabi_attribute Tag_PCS_config, 5 +@CHECK: .eabi_attribute 13, 5 +@CHECK-OBJ: Tag: 13 +@CHECK-OBJ-NEXT: Value: 5 +@CHECK-OBJ-NEXT: TagName: PCS_config +@CHECK-OBJ-NEXT: Description: Reserved (Palm OS) + +.eabi_attribute Tag_ABI_align_needed, 5 +@CHECK: .eabi_attribute 24, 5 +@CHECK-OBJ: Tag: 24 +@CHECK-OBJ-NEXT: Value: 5 +@CHECK-OBJ-NEXT: TagName: ABI_align_needed +@CHECK-OBJ-NEXT: Description: 8-byte alignment, 32-byte extended alignment + +.eabi_attribute Tag_ABI_align_preserved, 5 +@CHECK: .eabi_attribute 25, 5 +@CHECK-OBJ: Tag: 25 +@CHECK-OBJ-NEXT: Value: 5 +@CHECK-OBJ-NEXT: TagName: ABI_align_preserved +@CHECK-OBJ-NEXT: Description: 8-byte stack alignment, 32-byte data alignment + +.eabi_attribute Tag_ABI_optimization_goals, 5 +@CHECK: .eabi_attribute 30, 5 +@CHECK-OBJ: Tag: 30 +@CHECK-OBJ-NEXT: Value: 5 +@CHECK-OBJ-NEXT: TagName: ABI_optimization_goals +@CHECK-OBJ-NEXT: Description: Debugging + +.eabi_attribute Tag_ABI_FP_optimization_goals, 5 +@CHECK: .eabi_attribute 31, 5 +@CHECK-OBJ: Tag: 31 +@CHECK-OBJ-NEXT: Value: 5 +@CHECK-OBJ-NEXT: TagName: ABI_FP_optimization_goals +@CHECK-OBJ-NEXT: Description: Accuracy + diff --git a/test/tools/llvm-readobj/ARM/attribute-6.s b/test/tools/llvm-readobj/ARM/attribute-6.s new file mode 100644 index 000000000000..8da7b9924e16 --- /dev/null +++ b/test/tools/llvm-readobj/ARM/attribute-6.s @@ -0,0 +1,52 @@ +@ RUN: llvm-mc -triple armv7-elf -filetype asm -o - %s | FileCheck %s +@ RUN: llvm-mc -triple armv7-eabi -filetype obj -o - %s \ +@ RUN: | llvm-readobj -arm-attributes - | FileCheck %s --check-prefix=CHECK-OBJ +.eabi_attribute Tag_CPU_arch, 6 +@CHECK: .eabi_attribute 6, 6 +@CHECK-OBJ: Tag: 6 +@CHECK-OBJ-NEXT: Value: 6 +@CHECK-OBJ-NEXT: TagName: CPU_arch +@CHECK-OBJ-NEXT: Description: ARM v6 + +.eabi_attribute Tag_FP_arch, 6 +@CHECK: .eabi_attribute 10, 6 +@CHECK-OBJ: Tag: 10 +@CHECK-OBJ-NEXT: Value: 6 +@CHECK-OBJ-NEXT: TagName: FP_arch +@CHECK-OBJ-NEXT: Description: VFPv4-D16 + +.eabi_attribute Tag_PCS_config, 6 +@CHECK: .eabi_attribute 13, 6 +@CHECK-OBJ: Tag: 13 +@CHECK-OBJ-NEXT: Value: 6 +@CHECK-OBJ-NEXT: TagName: PCS_config +@CHECK-OBJ-NEXT: Description: Symbian OS 2004 + +.eabi_attribute Tag_ABI_align_needed, 6 +@CHECK: .eabi_attribute 24, 6 +@CHECK-OBJ: Tag: 24 +@CHECK-OBJ-NEXT: Value: 6 +@CHECK-OBJ-NEXT: TagName: ABI_align_needed +@CHECK-OBJ-NEXT: Description: 8-byte alignment, 64-byte extended alignment + +.eabi_attribute Tag_ABI_align_preserved, 6 +@CHECK: .eabi_attribute 25, 6 +@CHECK-OBJ: Tag: 25 +@CHECK-OBJ-NEXT: Value: 6 +@CHECK-OBJ-NEXT: TagName: ABI_align_preserved +@CHECK-OBJ-NEXT: Description: 8-byte stack alignment, 64-byte data alignment + +.eabi_attribute Tag_ABI_optimization_goals, 6 +@CHECK: .eabi_attribute 30, 6 +@CHECK-OBJ: Tag: 30 +@CHECK-OBJ-NEXT: Value: 6 +@CHECK-OBJ-NEXT: TagName: ABI_optimization_goals +@CHECK-OBJ-NEXT: Description: Best Debugging + +.eabi_attribute Tag_ABI_FP_optimization_goals, 6 +@CHECK: .eabi_attribute 31, 6 +@CHECK-OBJ: Tag: 31 +@CHECK-OBJ-NEXT: Value: 6 +@CHECK-OBJ-NEXT: TagName: ABI_FP_optimization_goals +@CHECK-OBJ-NEXT: Description: Best Accuracy + diff --git a/test/tools/llvm-readobj/ARM/attribute-7.s b/test/tools/llvm-readobj/ARM/attribute-7.s new file mode 100644 index 000000000000..2fd1b209d310 --- /dev/null +++ b/test/tools/llvm-readobj/ARM/attribute-7.s @@ -0,0 +1,38 @@ +@ RUN: llvm-mc -triple armv7-elf -filetype asm -o - %s | FileCheck %s +@ RUN: llvm-mc -triple armv7-eabi -filetype obj -o - %s \ +@ RUN: | llvm-readobj -arm-attributes - | FileCheck %s --check-prefix=CHECK-OBJ +.eabi_attribute Tag_CPU_arch, 7 +@CHECK: .eabi_attribute 6, 7 +@CHECK-OBJ: Tag: 6 +@CHECK-OBJ-NEXT: Value: 7 +@CHECK-OBJ-NEXT: TagName: CPU_arch +@CHECK-OBJ-NEXT: Description: ARM v6KZ + +.eabi_attribute Tag_FP_arch, 7 +@CHECK: .eabi_attribute 10, 7 +@CHECK-OBJ: Tag: 10 +@CHECK-OBJ-NEXT: Value: 7 +@CHECK-OBJ-NEXT: TagName: FP_arch +@CHECK-OBJ-NEXT: Description: ARMv8-a FP + +.eabi_attribute Tag_PCS_config, 7 +@CHECK: .eabi_attribute 13, 7 +@CHECK-OBJ: Tag: 13 +@CHECK-OBJ-NEXT: Value: 7 +@CHECK-OBJ-NEXT: TagName: PCS_config +@CHECK-OBJ-NEXT: Description: Reserved (Symbian OS) + +.eabi_attribute Tag_ABI_align_needed, 7 +@CHECK: .eabi_attribute 24, 7 +@CHECK-OBJ: Tag: 24 +@CHECK-OBJ-NEXT: Value: 7 +@CHECK-OBJ-NEXT: TagName: ABI_align_needed +@CHECK-OBJ-NEXT: Description: 8-byte alignment, 128-byte extended alignment + +.eabi_attribute Tag_ABI_align_preserved, 7 +@CHECK: .eabi_attribute 25, 7 +@CHECK-OBJ: Tag: 25 +@CHECK-OBJ-NEXT: Value: 7 +@CHECK-OBJ-NEXT: TagName: ABI_align_preserved +@CHECK-OBJ-NEXT: Description: 8-byte stack alignment, 128-byte data alignment + diff --git a/test/tools/llvm-readobj/ARM/attribute-8.s b/test/tools/llvm-readobj/ARM/attribute-8.s new file mode 100644 index 000000000000..ac3e3a0b4056 --- /dev/null +++ b/test/tools/llvm-readobj/ARM/attribute-8.s @@ -0,0 +1,31 @@ +@ RUN: llvm-mc -triple armv7-elf -filetype asm -o - %s | FileCheck %s +@ RUN: llvm-mc -triple armv7-eabi -filetype obj -o - %s \ +@ RUN: | llvm-readobj -arm-attributes - | FileCheck %s --check-prefix=CHECK-OBJ +.eabi_attribute Tag_CPU_arch, 8 +@CHECK: .eabi_attribute 6, 8 +@CHECK-OBJ: Tag: 6 +@CHECK-OBJ-NEXT: Value: 8 +@CHECK-OBJ-NEXT: TagName: CPU_arch +@CHECK-OBJ-NEXT: Description: ARM v6T2 + +.eabi_attribute Tag_FP_arch, 8 +@CHECK: .eabi_attribute 10, 8 +@CHECK-OBJ: Tag: 10 +@CHECK-OBJ-NEXT: Value: 8 +@CHECK-OBJ-NEXT: TagName: FP_arch +@CHECK-OBJ-NEXT: Description: ARMv8-a FP-D16 + +.eabi_attribute Tag_ABI_align_needed, 8 +@CHECK: .eabi_attribute 24, 8 +@CHECK-OBJ: Tag: 24 +@CHECK-OBJ-NEXT: Value: 8 +@CHECK-OBJ-NEXT: TagName: ABI_align_needed +@CHECK-OBJ-NEXT: Description: 8-byte alignment, 256-byte extended alignment + +.eabi_attribute Tag_ABI_align_preserved, 8 +@CHECK: .eabi_attribute 25, 8 +@CHECK-OBJ: Tag: 25 +@CHECK-OBJ-NEXT: Value: 8 +@CHECK-OBJ-NEXT: TagName: ABI_align_preserved +@CHECK-OBJ-NEXT: Description: 8-byte stack alignment, 256-byte data alignment + diff --git a/test/tools/llvm-readobj/ARM/attribute-9.s b/test/tools/llvm-readobj/ARM/attribute-9.s new file mode 100644 index 000000000000..68f6ccb5a63c --- /dev/null +++ b/test/tools/llvm-readobj/ARM/attribute-9.s @@ -0,0 +1,24 @@ +@ RUN: llvm-mc -triple armv7-elf -filetype asm -o - %s | FileCheck %s +@ RUN: llvm-mc -triple armv7-eabi -filetype obj -o - %s \ +@ RUN: | llvm-readobj -arm-attributes - | FileCheck %s --check-prefix=CHECK-OBJ +.eabi_attribute Tag_CPU_arch, 9 +@CHECK: .eabi_attribute 6, 9 +@CHECK-OBJ: Tag: 6 +@CHECK-OBJ-NEXT: Value: 9 +@CHECK-OBJ-NEXT: TagName: CPU_arch +@CHECK-OBJ-NEXT: Description: ARM v6K + +.eabi_attribute Tag_ABI_align_needed, 9 +@CHECK: .eabi_attribute 24, 9 +@CHECK-OBJ: Tag: 24 +@CHECK-OBJ-NEXT: Value: 9 +@CHECK-OBJ-NEXT: TagName: ABI_align_needed +@CHECK-OBJ-NEXT: Description: 8-byte alignment, 512-byte extended alignment + +.eabi_attribute Tag_ABI_align_preserved, 9 +@CHECK: .eabi_attribute 25, 9 +@CHECK-OBJ: Tag: 25 +@CHECK-OBJ-NEXT: Value: 9 +@CHECK-OBJ-NEXT: TagName: ABI_align_preserved +@CHECK-OBJ-NEXT: Description: 8-byte stack alignment, 512-byte data alignment + diff --git a/test/tools/llvm-readobj/ARM/attribute-A.s b/test/tools/llvm-readobj/ARM/attribute-A.s new file mode 100644 index 000000000000..720f56e9ddf5 --- /dev/null +++ b/test/tools/llvm-readobj/ARM/attribute-A.s @@ -0,0 +1,10 @@ +@ RUN: llvm-mc -triple armv7-elf -filetype asm -o - %s | FileCheck %s +@ RUN: llvm-mc -triple armv7-eabi -filetype obj -o - %s \ +@ RUN: | llvm-readobj -arm-attributes - | FileCheck %s --check-prefix=CHECK-OBJ +.eabi_attribute Tag_CPU_arch_profile, 'A' +@CHECK: .eabi_attribute 7, 65 +@CHECK-OBJ: Tag: 7 +@CHECK-OBJ-NEXT: Value: 65 +@CHECK-OBJ-NEXT: TagName: CPU_arch_profile +@CHECK-OBJ-NEXT: Description: Application + diff --git a/test/tools/llvm-readobj/ARM/attribute-M.s b/test/tools/llvm-readobj/ARM/attribute-M.s new file mode 100644 index 000000000000..7d1e1efba3e4 --- /dev/null +++ b/test/tools/llvm-readobj/ARM/attribute-M.s @@ -0,0 +1,10 @@ +@ RUN: llvm-mc -triple armv7-elf -filetype asm -o - %s | FileCheck %s +@ RUN: llvm-mc -triple armv7-eabi -filetype obj -o - %s \ +@ RUN: | llvm-readobj -arm-attributes - | FileCheck %s --check-prefix=CHECK-OBJ +.eabi_attribute Tag_CPU_arch_profile, 'M' +@CHECK: .eabi_attribute 7, 77 +@CHECK-OBJ: Tag: 7 +@CHECK-OBJ-NEXT: Value: 77 +@CHECK-OBJ-NEXT: TagName: CPU_arch_profile +@CHECK-OBJ-NEXT: Description: Microcontroller + diff --git a/test/tools/llvm-readobj/ARM/attribute-R.s b/test/tools/llvm-readobj/ARM/attribute-R.s new file mode 100644 index 000000000000..096d55764c1c --- /dev/null +++ b/test/tools/llvm-readobj/ARM/attribute-R.s @@ -0,0 +1,10 @@ +@ RUN: llvm-mc -triple armv7-elf -filetype asm -o - %s | FileCheck %s +@ RUN: llvm-mc -triple armv7-eabi -filetype obj -o - %s \ +@ RUN: | llvm-readobj -arm-attributes - | FileCheck %s --check-prefix=CHECK-OBJ +.eabi_attribute Tag_CPU_arch_profile, 'R' +@CHECK: .eabi_attribute 7, 82 +@CHECK-OBJ: Tag: 7 +@CHECK-OBJ-NEXT: Value: 82 +@CHECK-OBJ-NEXT: TagName: CPU_arch_profile +@CHECK-OBJ-NEXT: Description: Real-time + diff --git a/test/tools/llvm-readobj/ARM/attribute-S.s b/test/tools/llvm-readobj/ARM/attribute-S.s new file mode 100644 index 000000000000..cb909580ab3b --- /dev/null +++ b/test/tools/llvm-readobj/ARM/attribute-S.s @@ -0,0 +1,10 @@ +@ RUN: llvm-mc -triple armv7-elf -filetype asm -o - %s | FileCheck %s +@ RUN: llvm-mc -triple armv7-eabi -filetype obj -o - %s \ +@ RUN: | llvm-readobj -arm-attributes - | FileCheck %s --check-prefix=CHECK-OBJ +.eabi_attribute Tag_CPU_arch_profile, 'S' +@CHECK: .eabi_attribute 7, 83 +@CHECK-OBJ: Tag: 7 +@CHECK-OBJ-NEXT: Value: 83 +@CHECK-OBJ-NEXT: TagName: CPU_arch_profile +@CHECK-OBJ-NEXT: Description: Classic + diff --git a/test/tools/llvm-readobj/ARM/attribute-conformance-1.s b/test/tools/llvm-readobj/ARM/attribute-conformance-1.s new file mode 100644 index 000000000000..daa44c14ecac --- /dev/null +++ b/test/tools/llvm-readobj/ARM/attribute-conformance-1.s @@ -0,0 +1,8 @@ +@ RUN: llvm-mc -triple armv7-elf -filetype asm -o - %s | FileCheck %s +@ RUN: llvm-mc -triple armv7-eabi -filetype obj -o - %s \ +@ RUN: | llvm-readobj -arm-attributes - | FileCheck %s --check-prefix=CHECK-OBJ +.eabi_attribute Tag_conformance, "0" +@CHECK: .eabi_attribute 67, "0" +@CHECK-OBJ: Tag: 67 +@CHECK-OBJ-NEXT: TagName: conformance +@CHECK-OBJ-NEXT: Value: 0 diff --git a/test/tools/llvm-readobj/ARM/attribute-conformance-2.s b/test/tools/llvm-readobj/ARM/attribute-conformance-2.s new file mode 100644 index 000000000000..47c83c03696d --- /dev/null +++ b/test/tools/llvm-readobj/ARM/attribute-conformance-2.s @@ -0,0 +1,8 @@ +@ RUN: llvm-mc -triple armv7-elf -filetype asm -o - %s | FileCheck %s +@ RUN: llvm-mc -triple armv7-eabi -filetype obj -o - %s \ +@ RUN: | llvm-readobj -arm-attributes - | FileCheck %s --check-prefix=CHECK-OBJ +.eabi_attribute Tag_conformance, "A.long--non numeric oddity...!!" +@CHECK: .eabi_attribute 67, "A.long--non numeric oddity...!!" +@CHECK-OBJ: Tag: 67 +@CHECK-OBJ-NEXT: TagName: conformance +@CHECK-OBJ-NEXT: Value: A.long--non numeric oddity...!! diff --git a/test/tools/llvm-readobj/ARM/attributes.s b/test/tools/llvm-readobj/ARM/attributes.s deleted file mode 100644 index 594bab85a09e..000000000000 --- a/test/tools/llvm-readobj/ARM/attributes.s +++ /dev/null @@ -1,287 +0,0 @@ -@ RUN: llvm-mc -triple armv7-eabi -filetype obj -o - %s \ -@ RUN: | llvm-readobj -arm-attributes - | FileCheck %s - - .syntax unified - - .cpu cortex-a8 - .fpu neon - - .eabi_attribute Tag_CPU_raw_name, "Cortex-A9" - .eabi_attribute Tag_CPU_name, "cortex-a9" - .eabi_attribute Tag_CPU_arch, 10 - .eabi_attribute Tag_CPU_arch_profile, 'A' - .eabi_attribute Tag_ARM_ISA_use, 0 - .eabi_attribute Tag_THUMB_ISA_use, 2 - .eabi_attribute Tag_FP_arch, 3 - .eabi_attribute Tag_WMMX_arch, 0 - .eabi_attribute Tag_Advanced_SIMD_arch, 1 - .eabi_attribute Tag_PCS_config, 2 - .eabi_attribute Tag_ABI_PCS_R9_use, 0 - .eabi_attribute Tag_ABI_PCS_RW_data, 0 - .eabi_attribute Tag_ABI_PCS_RO_data, 0 - .eabi_attribute Tag_ABI_PCS_GOT_use, 0 - .eabi_attribute Tag_ABI_PCS_wchar_t, 4 - .eabi_attribute Tag_ABI_FP_rounding, 1 - .eabi_attribute Tag_ABI_FP_denormal, 2 - .eabi_attribute Tag_ABI_FP_exceptions, 1 - .eabi_attribute Tag_ABI_FP_user_exceptions, 1 - .eabi_attribute Tag_ABI_FP_number_model, 3 - .eabi_attribute Tag_ABI_align_needed, 1 - .eabi_attribute Tag_ABI_align_preserved, 2 - .eabi_attribute Tag_ABI_enum_size, 3 - .eabi_attribute Tag_ABI_HardFP_use, 0 - .eabi_attribute Tag_ABI_VFP_args, 1 - .eabi_attribute Tag_ABI_WMMX_args, 0 - .eabi_attribute Tag_ABI_optimization_goals, 2 - .eabi_attribute Tag_ABI_FP_optimization_goals, 2 - .eabi_attribute Tag_compatibility, 1 - .eabi_attribute Tag_compatibility, 1, "aeabi" - .eabi_attribute Tag_CPU_unaligned_access, 0 - .eabi_attribute Tag_FP_HP_extension, 0 - .eabi_attribute Tag_ABI_FP_16bit_format, 0 - .eabi_attribute Tag_MPextension_use, 0 - .eabi_attribute Tag_DIV_use, 0 - .eabi_attribute Tag_nodefaults, 0 - .eabi_attribute Tag_also_compatible_with, "gnu" - .eabi_attribute Tag_T2EE_use, 0 - .eabi_attribute Tag_conformance, "2.09" - .eabi_attribute Tag_Virtualization_use, 0 - -@ CHECK: BuildAttributes { -@ CHECK: Section 1 { -@ CHECK: Tag: Tag_File (0x1) -@ CHECK: FileAttributes { -@ CHECK: Attribute { -@ CHECK: Tag: 4 -@ CHECK: TagName: CPU_raw_name -@ CHECK: Value: CORTEX-A9 -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 5 -@ CHECK: TagName: CPU_name -@ CHECK: Value: CORTEX-A9 -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 6 -@ CHECK: Value: 10 -@ CHECK: TagName: CPU_arch -@ CHECK: Description: ARM v7 -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 7 -@ CHECK: Value: 65 -@ CHECK: TagName: CPU_arch_profile -@ CHECK: Description: Application -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 8 -@ CHECK: Value: 0 -@ CHECK: TagName: ARM_ISA_use -@ CHECK: Description: Not Permitted -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 9 -@ CHECK: Value: 2 -@ CHECK: TagName: THUMB_ISA_use -@ CHECK: Description: Thumb-2 -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 10 -@ CHECK: Value: 3 -@ CHECK: TagName: FP_arch -@ CHECK: Description: VFPv3 -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 11 -@ CHECK: Value: 0 -@ CHECK: TagName: WMMX_arch -@ CHECK: Description: Not Permitted -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 12 -@ CHECK: Value: 1 -@ CHECK: TagName: Advanced_SIMD_arch -@ CHECK: Description: NEONv1 -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 13 -@ CHECK: Value: 2 -@ CHECK: TagName: PCS_config -@ CHECK: Description: Linux Application -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 14 -@ CHECK: Value: 0 -@ CHECK: TagName: ABI_PCS_R9_use -@ CHECK: Description: v6 -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 15 -@ CHECK: Value: 0 -@ CHECK: TagName: ABI_PCS_RW_data -@ CHECK: Description: Absolute -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 16 -@ CHECK: Value: 0 -@ CHECK: TagName: ABI_PCS_RO_data -@ CHECK: Description: Absolute -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 17 -@ CHECK: Value: 0 -@ CHECK: TagName: ABI_PCS_GOT_use -@ CHECK: Description: Not Permitted -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 18 -@ CHECK: Value: 4 -@ CHECK: TagName: ABI_PCS_wchar_t -@ CHECK: Description: 4-byte -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 19 -@ CHECK: Value: 1 -@ CHECK: TagName: ABI_FP_rounding -@ CHECK: Description: Runtime -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 20 -@ CHECK: Value: 2 -@ CHECK: TagName: ABI_FP_denormal -@ CHECK: Description: Sign Only -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 21 -@ CHECK: Value: 1 -@ CHECK: TagName: ABI_FP_exceptions -@ CHECK: Description: IEEE-754 -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 22 -@ CHECK: Value: 1 -@ CHECK: TagName: ABI_FP_user_exceptions -@ CHECK: Description: IEEE-754 -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 23 -@ CHECK: Value: 3 -@ CHECK: TagName: ABI_FP_number_model -@ CHECK: Description: IEEE-754 -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 24 -@ CHECK: Value: 1 -@ CHECK: TagName: ABI_align_needed -@ CHECK: Description: 8-byte alignment -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 25 -@ CHECK: Value: 2 -@ CHECK: TagName: ABI_align_preserved -@ CHECK: Description: 8-byte data and code alignment -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 26 -@ CHECK: Value: 3 -@ CHECK: TagName: ABI_enum_size -@ CHECK: Description: External Int32 -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 27 -@ CHECK: Value: 0 -@ CHECK: TagName: ABI_HardFP_use -@ CHECK: Description: Tag_FP_arch -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 28 -@ CHECK: Value: 1 -@ CHECK: TagName: ABI_VFP_args -@ CHECK: Description: AAPCS VFP -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 29 -@ CHECK: Value: 0 -@ CHECK: TagName: ABI_WMMX_args -@ CHECK: Description: AAPCS -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 30 -@ CHECK: Value: 2 -@ CHECK: TagName: ABI_optimization_goals -@ CHECK: Description: Aggressive Speed -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 31 -@ CHECK: Value: 2 -@ CHECK: TagName: ABI_FP_optimization_goals -@ CHECK: Description: Aggressive Speed -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 32 -@ CHECK: Value: 1, AEABI -@ CHECK: TagName: compatibility -@ CHECK: Description: AEABI Conformant -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 34 -@ CHECK: Value: 0 -@ CHECK: TagName: CPU_unaligned_access -@ CHECK: Description: Not Permitted -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 36 -@ CHECK: Value: 0 -@ CHECK: TagName: FP_HP_extension -@ CHECK: Description: If Available -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 38 -@ CHECK: Value: 0 -@ CHECK: TagName: ABI_FP_16bit_format -@ CHECK: Description: Not Permitted -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 42 -@ CHECK: Value: 0 -@ CHECK: TagName: MPextension_use -@ CHECK: Description: Not Permitted -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 44 -@ CHECK: Value: 0 -@ CHECK: TagName: DIV_use -@ CHECK: Description: If Available -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 64 -@ CHECK: Value: 0 -@ CHECK: TagName: nodefaults -@ CHECK: Description: Unspecified Tags UNDEFINED -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 65 -@ CHECK: TagName: also_compatible_with -@ CHECK: Value: GNU -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 66 -@ CHECK: Value: 0 -@ CHECK: TagName: T2EE_use -@ CHECK: Description: Not Permitted -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 67 -@ CHECK: TagName: conformance -@ CHECK: Value: 2.09 -@ CHECK: } -@ CHECK: Attribute { -@ CHECK: Tag: 68 -@ CHECK: Value: 0 -@ CHECK: TagName: Virtualization_use -@ CHECK: Description: Not Permitted -@ CHECK: } -@ CHECK: } -@ CHECK: } -@ CHECK: } - diff --git a/test/tools/llvm-readobj/Inputs/bad-relocs.obj.coff-i386 b/test/tools/llvm-readobj/Inputs/bad-relocs.obj.coff-i386 Binary files differnew file mode 100644 index 000000000000..06ec4718da19 --- /dev/null +++ b/test/tools/llvm-readobj/Inputs/bad-relocs.obj.coff-i386 diff --git a/test/tools/llvm-readobj/Inputs/basereloc.obj.coff-i386 b/test/tools/llvm-readobj/Inputs/basereloc.obj.coff-i386 Binary files differnew file mode 100644 index 000000000000..0aeed443e33a --- /dev/null +++ b/test/tools/llvm-readobj/Inputs/basereloc.obj.coff-i386 diff --git a/test/tools/llvm-readobj/Inputs/bigobj.coff-x86-64 b/test/tools/llvm-readobj/Inputs/bigobj.coff-x86-64 Binary files differnew file mode 100644 index 000000000000..fdfda5e5713a --- /dev/null +++ b/test/tools/llvm-readobj/Inputs/bigobj.coff-x86-64 diff --git a/test/tools/llvm-readobj/Inputs/comdat-function-linetables.obj.coff-2012-i386 b/test/tools/llvm-readobj/Inputs/comdat-function-linetables.obj.coff-2012-i386 Binary files differnew file mode 100755 index 000000000000..4a723044801b --- /dev/null +++ b/test/tools/llvm-readobj/Inputs/comdat-function-linetables.obj.coff-2012-i386 diff --git a/test/tools/llvm-readobj/Inputs/comdat-function-linetables.obj.coff-2013-i386 b/test/tools/llvm-readobj/Inputs/comdat-function-linetables.obj.coff-2013-i386 Binary files differnew file mode 100755 index 000000000000..4adaf2edc6f7 --- /dev/null +++ b/test/tools/llvm-readobj/Inputs/comdat-function-linetables.obj.coff-2013-i386 diff --git a/test/tools/llvm-readobj/Inputs/directives.obj.coff-x86_64 b/test/tools/llvm-readobj/Inputs/directives.obj.coff-x86_64 Binary files differnew file mode 100644 index 000000000000..4c156dcbb034 --- /dev/null +++ b/test/tools/llvm-readobj/Inputs/directives.obj.coff-x86_64 diff --git a/test/tools/llvm-readobj/Inputs/export-arm.dll b/test/tools/llvm-readobj/Inputs/export-arm.dll Binary files differnew file mode 100755 index 000000000000..a5555628afc6 --- /dev/null +++ b/test/tools/llvm-readobj/Inputs/export-arm.dll diff --git a/test/tools/llvm-readobj/Inputs/export-x64.dll b/test/tools/llvm-readobj/Inputs/export-x64.dll Binary files differnew file mode 100755 index 000000000000..10b14e8fff95 --- /dev/null +++ b/test/tools/llvm-readobj/Inputs/export-x64.dll diff --git a/test/tools/llvm-readobj/Inputs/export-x86.dll b/test/tools/llvm-readobj/Inputs/export-x86.dll Binary files differnew file mode 100755 index 000000000000..9efcd3131fe0 --- /dev/null +++ b/test/tools/llvm-readobj/Inputs/export-x86.dll diff --git a/test/tools/llvm-readobj/Inputs/file-aux-record.yaml b/test/tools/llvm-readobj/Inputs/file-aux-record.yaml index d19afaf68a85..89d6761a26db 100644 --- a/test/tools/llvm-readobj/Inputs/file-aux-record.yaml +++ b/test/tools/llvm-readobj/Inputs/file-aux-record.yaml @@ -6,7 +6,7 @@ symbols: - !Symbol Name: .file Value: 0 - SectionNumber: 65534 + SectionNumber: -2 SimpleType: IMAGE_SYM_TYPE_NULL ComplexType: IMAGE_SYM_DTYPE_NULL StorageClass: IMAGE_SYM_CLASS_FILE @@ -14,7 +14,7 @@ symbols: - !Symbol Name: '@comp.id' Value: 13485607 - SectionNumber: 65535 + SectionNumber: -1 SimpleType: IMAGE_SYM_TYPE_NULL ComplexType: IMAGE_SYM_DTYPE_NULL StorageClass: IMAGE_SYM_CLASS_STATIC diff --git a/test/tools/llvm-readobj/Inputs/file-multiple-aux-records.yaml b/test/tools/llvm-readobj/Inputs/file-multiple-aux-records.yaml index 8d8f68447d47..d5b1eec878b0 100644 --- a/test/tools/llvm-readobj/Inputs/file-multiple-aux-records.yaml +++ b/test/tools/llvm-readobj/Inputs/file-multiple-aux-records.yaml @@ -6,7 +6,7 @@ symbols: - !Symbol Name: .file Value: 0 - SectionNumber: 65534 + SectionNumber: -2 SimpleType: IMAGE_SYM_TYPE_NULL ComplexType: IMAGE_SYM_DTYPE_NULL StorageClass: IMAGE_SYM_CLASS_FILE @@ -14,7 +14,7 @@ symbols: - !Symbol Name: '@comp.id' Value: 13485607 - SectionNumber: 65535 + SectionNumber: -1 SimpleType: IMAGE_SYM_TYPE_NULL ComplexType: IMAGE_SYM_DTYPE_NULL StorageClass: IMAGE_SYM_CLASS_STATIC diff --git a/test/tools/llvm-readobj/Inputs/imports.exe.coff-i386 b/test/tools/llvm-readobj/Inputs/imports.exe.coff-i386 Binary files differnew file mode 100644 index 000000000000..72077adaebef --- /dev/null +++ b/test/tools/llvm-readobj/Inputs/imports.exe.coff-i386 diff --git a/test/tools/llvm-readobj/Inputs/imports.exe.coff-x86-64 b/test/tools/llvm-readobj/Inputs/imports.exe.coff-x86-64 Binary files differnew file mode 100644 index 000000000000..5ee198e4a2e2 --- /dev/null +++ b/test/tools/llvm-readobj/Inputs/imports.exe.coff-x86-64 diff --git a/test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2012-i368 b/test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2012-i368 Binary files differindex 1672d3a54242..213331f604e0 100644 --- a/test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2012-i368 +++ b/test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2012-i368 diff --git a/test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2012-x86_64 b/test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2012-x86_64 Binary files differindex 30bfe79bc308..a35cc11c2ebc 100644 --- a/test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2012-x86_64 +++ b/test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2012-x86_64 diff --git a/test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2013-i368 b/test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2013-i368 Binary files differnew file mode 100644 index 000000000000..8a901f64af8e --- /dev/null +++ b/test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2013-i368 diff --git a/test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2013-x86_64 b/test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2013-x86_64 Binary files differnew file mode 100644 index 000000000000..f1c2e1f25e7f --- /dev/null +++ b/test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2013-x86_64 diff --git a/test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2012-i368 b/test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2012-i368 Binary files differindex a0196ff2d737..41479edc7119 100644 --- a/test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2012-i368 +++ b/test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2012-i368 diff --git a/test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2012-x86_64 b/test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2012-x86_64 Binary files differindex 14f65ab2f6d7..8d30f325d70b 100644 --- a/test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2012-x86_64 +++ b/test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2012-x86_64 diff --git a/test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2013-i368 b/test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2013-i368 Binary files differnew file mode 100644 index 000000000000..4269b2145467 --- /dev/null +++ b/test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2013-i368 diff --git a/test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2013-x86_64 b/test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2013-x86_64 Binary files differnew file mode 100644 index 000000000000..65a1af061c83 --- /dev/null +++ b/test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2013-x86_64 diff --git a/test/tools/llvm-readobj/Inputs/relocs-no-symtab.obj.coff-i386 b/test/tools/llvm-readobj/Inputs/relocs-no-symtab.obj.coff-i386 Binary files differnew file mode 100644 index 000000000000..5882daf4c595 --- /dev/null +++ b/test/tools/llvm-readobj/Inputs/relocs-no-symtab.obj.coff-i386 diff --git a/test/tools/llvm-readobj/Inputs/relocs.obj.coff-i386 b/test/tools/llvm-readobj/Inputs/relocs.obj.coff-i386 Binary files differindex 15e43ef54fef..9c24ac8d9d3c 100644 --- a/test/tools/llvm-readobj/Inputs/relocs.obj.coff-i386 +++ b/test/tools/llvm-readobj/Inputs/relocs.obj.coff-i386 diff --git a/test/tools/llvm-readobj/Inputs/relocs.obj.coff-x86_64 b/test/tools/llvm-readobj/Inputs/relocs.obj.coff-x86_64 Binary files differindex cd63173b0e3a..356437e66cb8 100644 --- a/test/tools/llvm-readobj/Inputs/relocs.obj.coff-x86_64 +++ b/test/tools/llvm-readobj/Inputs/relocs.obj.coff-x86_64 diff --git a/test/tools/llvm-readobj/Inputs/relocs.obj.elf-aarch64 b/test/tools/llvm-readobj/Inputs/relocs.obj.elf-aarch64 Binary files differindex d39e60c8eec3..658b0ea6227a 100644 --- a/test/tools/llvm-readobj/Inputs/relocs.obj.elf-aarch64 +++ b/test/tools/llvm-readobj/Inputs/relocs.obj.elf-aarch64 diff --git a/test/tools/llvm-readobj/Inputs/relocs.obj.elf-arm b/test/tools/llvm-readobj/Inputs/relocs.obj.elf-arm Binary files differindex 908507d20ab9..206c933d478f 100644 --- a/test/tools/llvm-readobj/Inputs/relocs.obj.elf-arm +++ b/test/tools/llvm-readobj/Inputs/relocs.obj.elf-arm diff --git a/test/tools/llvm-readobj/Inputs/relocs.py b/test/tools/llvm-readobj/Inputs/relocs.py index af9459df8ee2..62dbd627ca52 100644 --- a/test/tools/llvm-readobj/Inputs/relocs.py +++ b/test/tools/llvm-readobj/Inputs/relocs.py @@ -327,6 +327,10 @@ def patchCoff(path, relocs): machine_type = f.uint16() section_count = f.uint16() + + # Zero out timestamp to prevent churn when regenerating COFF files. + f.writeUInt32(0) + f.seek(20) sections = [CoffSection(f) for idx in range(section_count)] @@ -587,7 +591,7 @@ class Relocs_Elf_PPC64(Enum): R_PPC64_TLSLD = 108 class Relocs_Elf_AArch64(Enum): - R_AARCH64_NONE = 0x100 + R_AARCH64_NONE = 0 R_AARCH64_ABS64 = 0x101 R_AARCH64_ABS32 = 0x102 R_AARCH64_ABS16 = 0x103 @@ -607,6 +611,7 @@ class Relocs_Elf_AArch64(Enum): R_AARCH64_LD_PREL_LO19 = 0x111 R_AARCH64_ADR_PREL_LO21 = 0x112 R_AARCH64_ADR_PREL_PG_HI21 = 0x113 + R_AARCH64_ADR_PREL_PG_HI21_NC = 0x114 R_AARCH64_ADD_ABS_LO12_NC = 0x115 R_AARCH64_LDST8_ABS_LO12_NC = 0x116 R_AARCH64_TSTBR14 = 0x117 @@ -616,9 +621,39 @@ class Relocs_Elf_AArch64(Enum): R_AARCH64_LDST16_ABS_LO12_NC = 0x11c R_AARCH64_LDST32_ABS_LO12_NC = 0x11d R_AARCH64_LDST64_ABS_LO12_NC = 0x11e + R_AARCH64_MOVW_PREL_G0 = 0x11f + R_AARCH64_MOVW_PREL_G0_NC = 0x120 + R_AARCH64_MOVW_PREL_G1 = 0x121 + R_AARCH64_MOVW_PREL_G1_NC = 0x122 + R_AARCH64_MOVW_PREL_G2 = 0x123 + R_AARCH64_MOVW_PREL_G2_NC = 0x124 + R_AARCH64_MOVW_PREL_G3 = 0x125 R_AARCH64_LDST128_ABS_LO12_NC = 0x12b + R_AARCH64_MOVW_GOTOFF_G0 = 0x12c + R_AARCH64_MOVW_GOTOFF_G0_NC = 0x12d + R_AARCH64_MOVW_GOTOFF_G1 = 0x12e + R_AARCH64_MOVW_GOTOFF_G1_NC = 0x12f + R_AARCH64_MOVW_GOTOFF_G2 = 0x130 + R_AARCH64_MOVW_GOTOFF_G2_NC = 0x131 + R_AARCH64_MOVW_GOTOFF_G3 = 0x132 + R_AARCH64_GOTREL64 = 0x133 + R_AARCH64_GOTREL32 = 0x134 + R_AARCH64_GOT_LD_PREL19 = 0x135 + R_AARCH64_LD64_GOTOFF_LO15 = 0x136 R_AARCH64_ADR_GOT_PAGE = 0x137 R_AARCH64_LD64_GOT_LO12_NC = 0x138 + R_AARCH64_LD64_GOTPAGE_LO15 = 0x139 + R_AARCH64_TLSGD_ADR_PREL21 = 0x200 + R_AARCH64_TLSGD_ADR_PAGE21 = 0x201 + R_AARCH64_TLSGD_ADD_LO12_NC = 0x202 + R_AARCH64_TLSGD_MOVW_G1 = 0x203 + R_AARCH64_TLSGD_MOVW_G0_NC = 0x204 + R_AARCH64_TLSLD_ADR_PREL21 = 0x205 + R_AARCH64_TLSLD_ADR_PAGE21 = 0x206 + R_AARCH64_TLSLD_ADD_LO12_NC = 0x207 + R_AARCH64_TLSLD_MOVW_G1 = 0x208 + R_AARCH64_TLSLD_MOVW_G0_NC = 0x209 + R_AARCH64_TLSLD_LD_PREL19 = 0x20a R_AARCH64_TLSLD_MOVW_DTPREL_G2 = 0x20b R_AARCH64_TLSLD_MOVW_DTPREL_G1 = 0x20c R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC = 0x20d @@ -656,10 +691,29 @@ class Relocs_Elf_AArch64(Enum): R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC = 0x22d R_AARCH64_TLSLE_LDST64_TPREL_LO12 = 0x22e R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC = 0x22f - R_AARCH64_TLSDESC_ADR_PAGE = 0x232 + R_AARCH64_TLSDESC_LD_PREL19 = 0x230 + R_AARCH64_TLSDESC_ADR_PREL21 = 0x231 + R_AARCH64_TLSDESC_ADR_PAGE21 = 0x232 R_AARCH64_TLSDESC_LD64_LO12_NC = 0x233 R_AARCH64_TLSDESC_ADD_LO12_NC = 0x234 + R_AARCH64_TLSDESC_OFF_G1 = 0x235 + R_AARCH64_TLSDESC_OFF_G0_NC = 0x236 + R_AARCH64_TLSDESC_LDR = 0x237 + R_AARCH64_TLSDESC_ADD = 0x238 R_AARCH64_TLSDESC_CALL = 0x239 + R_AARCH64_TLSLE_LDST128_TPREL_LO12 = 0x23a + R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC = 0x23b + R_AARCH64_TLSLD_LDST128_DTPREL_LO12 = 0x23c + R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC = 0x23d + R_AARCH64_COPY = 0x400 + R_AARCH64_GLOB_DAT = 0x401 + R_AARCH64_JUMP_SLOT = 0x402 + R_AARCH64_RELATIVE = 0x403 + R_AARCH64_TLS_DTPREL64 = 0x404 + R_AARCH64_TLS_DTPMOD64 = 0x405 + R_AARCH64_TLS_TPREL64 = 0x406 + R_AARCH64_TLSDESC = 0x407 + R_AARCH64_IRELATIVE = 0x408 class Relocs_Elf_ARM(Enum): R_ARM_NONE = 0x00 @@ -793,6 +847,7 @@ class Relocs_Elf_ARM(Enum): R_ARM_ME_TOO = 0x80 R_ARM_THM_TLS_DESCSEQ16 = 0x81 R_ARM_THM_TLS_DESCSEQ32 = 0x82 + R_ARM_IRELATIVE = 0xa0 class Relocs_Elf_Mips(Enum): R_MIPS_NONE = 0 diff --git a/test/tools/llvm-readobj/bigobj.test b/test/tools/llvm-readobj/bigobj.test new file mode 100644 index 000000000000..10972144315d --- /dev/null +++ b/test/tools/llvm-readobj/bigobj.test @@ -0,0 +1,139 @@ +RUN: llvm-readobj --file-headers --sections --symbols --relocations %p/Inputs/bigobj.coff-x86-64 | FileCheck %s + +CHECK: File: {{(.*[/\\])?}}bigobj.coff-x86-64 +CHECK-NEXT: Format: COFF-x86-64 +CHECK-NEXT: Arch: x86_64 +CHECK-NEXT: AddressSize: 64bit +CHECK-NEXT: ImageFileHeader { +CHECK-NEXT: Machine: IMAGE_FILE_MACHINE_AMD64 (0x8664) +CHECK-NEXT: SectionCount: 3 +CHECK-NEXT: TimeDateStamp: 1970-01-01 00:00:00 (0x0) +CHECK-NEXT: PointerToSymbolTable: 0xB0 +CHECK-NEXT: SymbolCount: 8 +CHECK-NEXT: OptionalHeaderSize: 0 +CHECK-NEXT: Characteristics [ (0x0) +CHECK-NEXT: ] +CHECK-NEXT: } +CHECK-NEXT: Sections [ +CHECK-NEXT: Section { +CHECK-NEXT: Number: 1 +CHECK-NEXT: Name: .text (2E 74 65 78 74 00 00 00) +CHECK-NEXT: VirtualSize: 0x0 +CHECK-NEXT: VirtualAddress: 0x0 +CHECK-NEXT: RawDataSize: 0 +CHECK-NEXT: PointerToRawData: 0x0 +CHECK-NEXT: PointerToRelocations: 0x0 +CHECK-NEXT: PointerToLineNumbers: 0x0 +CHECK-NEXT: RelocationCount: 0 +CHECK-NEXT: LineNumberCount: 0 +CHECK-NEXT: Characteristics [ (0x60500020) +CHECK-NEXT: IMAGE_SCN_ALIGN_16BYTES (0x500000) +CHECK-NEXT: IMAGE_SCN_CNT_CODE (0x20) +CHECK-NEXT: IMAGE_SCN_MEM_EXECUTE (0x20000000) +CHECK-NEXT: IMAGE_SCN_MEM_READ (0x40000000) +CHECK-NEXT: ] +CHECK-NEXT: } +CHECK-NEXT: Section { +CHECK-NEXT: Number: 2 +CHECK-NEXT: Name: .data (2E 64 61 74 61 00 00 00) +CHECK-NEXT: VirtualSize: 0x0 +CHECK-NEXT: VirtualAddress: 0x0 +CHECK-NEXT: RawDataSize: 0 +CHECK-NEXT: PointerToRawData: 0x0 +CHECK-NEXT: PointerToRelocations: 0x0 +CHECK-NEXT: PointerToLineNumbers: 0x0 +CHECK-NEXT: RelocationCount: 0 +CHECK-NEXT: LineNumberCount: 0 +CHECK-NEXT: Characteristics [ (0xC0500040) +CHECK-NEXT: IMAGE_SCN_ALIGN_16BYTES (0x500000) +CHECK-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA (0x40) +CHECK-NEXT: IMAGE_SCN_MEM_READ (0x40000000) +CHECK-NEXT: IMAGE_SCN_MEM_WRITE (0x80000000) +CHECK-NEXT: ] +CHECK-NEXT: } +CHECK-NEXT: Section { +CHECK-NEXT: Number: 3 +CHECK-NEXT: Name: .bss (2E 62 73 73 00 00 00 00) +CHECK-NEXT: VirtualSize: 0x0 +CHECK-NEXT: VirtualAddress: 0x0 +CHECK-NEXT: RawDataSize: 0 +CHECK-NEXT: PointerToRawData: 0x0 +CHECK-NEXT: PointerToRelocations: 0x0 +CHECK-NEXT: PointerToLineNumbers: 0x0 +CHECK-NEXT: RelocationCount: 0 +CHECK-NEXT: LineNumberCount: 0 +CHECK-NEXT: Characteristics [ (0xC0500080) +CHECK-NEXT: IMAGE_SCN_ALIGN_16BYTES (0x500000) +CHECK-NEXT: IMAGE_SCN_CNT_UNINITIALIZED_DATA (0x80) +CHECK-NEXT: IMAGE_SCN_MEM_READ (0x40000000) +CHECK-NEXT: IMAGE_SCN_MEM_WRITE (0x80000000) +CHECK-NEXT: ] +CHECK-NEXT: } +CHECK-NEXT: ] +CHECK-NEXT: Relocations [ +CHECK-NEXT: ] +CHECK-NEXT: Symbols [ +CHECK-NEXT: Symbol { +CHECK-NEXT: Name: .file +CHECK-NEXT: Value: 0 +CHECK-NEXT: Section: IMAGE_SYM_DEBUG (-2) +CHECK-NEXT: BaseType: Null (0x0) +CHECK-NEXT: ComplexType: Null (0x0) +CHECK-NEXT: StorageClass: File (0x67) +CHECK-NEXT: AuxSymbolCount: 1 +CHECK-NEXT: AuxFileRecord { +CHECK-NEXT: FileName: fake +CHECK-NEXT: } +CHECK-NEXT: } +CHECK-NEXT: Symbol { +CHECK-NEXT: Name: .text +CHECK-NEXT: Value: 0 +CHECK-NEXT: Section: .text (1) +CHECK-NEXT: BaseType: Null (0x0) +CHECK-NEXT: ComplexType: Null (0x0) +CHECK-NEXT: StorageClass: Static (0x3) +CHECK-NEXT: AuxSymbolCount: 1 +CHECK-NEXT: AuxSectionDef { +CHECK-NEXT: Length: 0 +CHECK-NEXT: RelocationCount: 0 +CHECK-NEXT: LineNumberCount: 0 +CHECK-NEXT: Checksum: 0x0 +CHECK-NEXT: Number: 0 +CHECK-NEXT: Selection: 0x0 +CHECK-NEXT: } +CHECK-NEXT: } +CHECK-NEXT: Symbol { +CHECK-NEXT: Name: .data +CHECK-NEXT: Value: 0 +CHECK-NEXT: Section: .data (2) +CHECK-NEXT: BaseType: Null (0x0) +CHECK-NEXT: ComplexType: Null (0x0) +CHECK-NEXT: StorageClass: Static (0x3) +CHECK-NEXT: AuxSymbolCount: 1 +CHECK-NEXT: AuxSectionDef { +CHECK-NEXT: Length: 0 +CHECK-NEXT: RelocationCount: 0 +CHECK-NEXT: LineNumberCount: 0 +CHECK-NEXT: Checksum: 0x0 +CHECK-NEXT: Number: 0 +CHECK-NEXT: Selection: 0x0 +CHECK-NEXT: } +CHECK-NEXT: } +CHECK-NEXT: Symbol { +CHECK-NEXT: Name: .bss +CHECK-NEXT: Value: 0 +CHECK-NEXT: Section: .bss (3) +CHECK-NEXT: BaseType: Null (0x0) +CHECK-NEXT: ComplexType: Null (0x0) +CHECK-NEXT: StorageClass: Static (0x3) +CHECK-NEXT: AuxSymbolCount: 1 +CHECK-NEXT: AuxSectionDef { +CHECK-NEXT: Length: 0 +CHECK-NEXT: RelocationCount: 0 +CHECK-NEXT: LineNumberCount: 0 +CHECK-NEXT: Checksum: 0x0 +CHECK-NEXT: Number: 0 +CHECK-NEXT: Selection: 0x0 +CHECK-NEXT: } +CHECK-NEXT: } +CHECK-NEXT: ] diff --git a/test/tools/llvm-readobj/codeview-linetables.test b/test/tools/llvm-readobj/codeview-linetables.test index 4854d7ac6a39..e5e344bf10ff 100644 --- a/test/tools/llvm-readobj/codeview-linetables.test +++ b/test/tools/llvm-readobj/codeview-linetables.test @@ -1,11 +1,31 @@ +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; The following two object files were generated using the following command: +; D:\> cl /Z7 /c source.c +; with the following contents of D:\source.c: +; void z(void); +; +; void x(void) { +; z(); +; } +; +; void y(void) { +; z(); +; } +; +; void f(void) { +; x(); +; y(); +; z(); +; } +; using 32-/64-bit versions of CL v17.00.61030 and v18.00.21005.1 respectively. RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifunction-linetables.obj.coff-2012-i368 \ RUN: | FileCheck %s -check-prefix MFUN32 +RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifunction-linetables.obj.coff-2013-i368 \ +RUN: | FileCheck %s -check-prefix MFUN32 RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifunction-linetables.obj.coff-2012-x86_64 \ RUN: | FileCheck %s -check-prefix MFUN64 -RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifile-linetables.obj.coff-2012-i368 \ -RUN: | FileCheck %s -check-prefix MFILE32 -RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifile-linetables.obj.coff-2012-x86_64 \ -RUN: | FileCheck %s -check-prefix MFILE64 +RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifunction-linetables.obj.coff-2013-x86_64 \ +RUN: | FileCheck %s -check-prefix MFUN64 MFUN32: CodeViewLineTables [ MFUN32-NEXT: Magic: 0x4 @@ -20,6 +40,12 @@ MFUN32: ] MFUN32-NEXT: Subsection [ MFUN32-NEXT: Type: 0xF1 MFUN32-NEXT: PayloadSize: 0x4B +MFUN32: ProcStart { +MFUN32-NEXT: DisplayName: x +MFUN32-NEXT: Section: _x +MFUN32-NEXT: CodeSize: 0xA +MFUN32-NEXT: } +MFUN32-NEXT: ProcEnd MFUN32: ] MFUN32-NEXT: Subsection [ MFUN32-NEXT: Type: 0xF2 @@ -33,6 +59,12 @@ MFUN32: ] MFUN32-NEXT: Subsection [ MFUN32-NEXT: Type: 0xF1 MFUN32-NEXT: PayloadSize: 0x4B +MFUN32: ProcStart { +MFUN32-NEXT: DisplayName: y +MFUN32-NEXT: Section: _y +MFUN32-NEXT: CodeSize: 0xA +MFUN32-NEXT: } +MFUN32-NEXT: ProcEnd MFUN32: ] MFUN32-NEXT: Subsection [ MFUN32-NEXT: Type: 0xF2 @@ -46,6 +78,12 @@ MFUN32: ] MFUN32-NEXT: Subsection [ MFUN32-NEXT: Type: 0xF1 MFUN32-NEXT: PayloadSize: 0x4B +MFUN32: ProcStart { +MFUN32-NEXT: DisplayName: f +MFUN32-NEXT: Section: _f +MFUN32-NEXT: CodeSize: 0x14 +MFUN32-NEXT: } +MFUN32-NEXT: ProcEnd MFUN32: ] MFUN32-NEXT: Subsection [ MFUN32-NEXT: Type: 0xF2 @@ -107,6 +145,12 @@ MFUN64: ] MFUN64-NEXT: Subsection [ MFUN64-NEXT: Type: 0xF1 MFUN64-NEXT: PayloadSize: 0x4B +MFUN64: ProcStart { +MFUN64-NEXT: DisplayName: x +MFUN64-NEXT: Section: x +MFUN64-NEXT: CodeSize: 0xE +MFUN64-NEXT: } +MFUN64-NEXT: ProcEnd MFUN64: ] MFUN64-NEXT: Subsection [ MFUN64-NEXT: Type: 0xF2 @@ -116,6 +160,12 @@ MFUN64-NEXT: ] MFUN64-NEXT: Subsection [ MFUN64-NEXT: Type: 0xF1 MFUN64-NEXT: PayloadSize: 0x4B +MFUN64: ProcStart { +MFUN64-NEXT: DisplayName: y +MFUN64-NEXT: Section: y +MFUN64-NEXT: CodeSize: 0xE +MFUN64-NEXT: } +MFUN64-NEXT: ProcEnd MFUN64: ] MFUN64-NEXT: Subsection [ MFUN64-NEXT: Type: 0xF2 @@ -125,6 +175,12 @@ MFUN64-NEXT: ] MFUN64-NEXT: Subsection [ MFUN64-NEXT: Type: 0xF1 MFUN64-NEXT: PayloadSize: 0x4B +MFUN64: ProcStart { +MFUN64-NEXT: DisplayName: f +MFUN64-NEXT: Section: f +MFUN64-NEXT: CodeSize: 0x18 +MFUN64-NEXT: } +MFUN64-NEXT: ProcEnd MFUN64: ] MFUN64-NEXT: Subsection [ MFUN64-NEXT: Type: 0xF2 @@ -177,6 +233,30 @@ MFUN64-NEXT: ] MFUN64-NEXT: ] MFUN64-NEXT: ] +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; The following two object files were generated using the following command: +; D:\> cl /Z7 /c input.c +; with the following contents of D:\input.c: +; void g(void); +; +; void f(void) { +; #line 1 "one.c" +; g(); +; #line 2 "two.c" +; g(); +; #line 7 "one.c" +; g(); +; } +; using 32-/64-bit versions of CL v17.00.61030 and v18.00.21005.1 respectively. +RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifile-linetables.obj.coff-2012-i368 \ +RUN: | FileCheck %s -check-prefix MFILE32 +RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifile-linetables.obj.coff-2013-i368 \ +RUN: | FileCheck %s -check-prefix MFILE32 +RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifile-linetables.obj.coff-2012-x86_64 \ +RUN: | FileCheck %s -check-prefix MFILE64 +RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifile-linetables.obj.coff-2013-x86_64 \ +RUN: | FileCheck %s -check-prefix MFILE64 + MFILE32: CodeViewLineTables [ MFILE32-NEXT: Magic: 0x4 MFILE32-NEXT: Subsection [ @@ -190,6 +270,12 @@ MFILE32: ] MFILE32-NEXT: Subsection [ MFILE32-NEXT: Type: 0xF1 MFILE32-NEXT: PayloadSize: 0x4B +MFILE32: ProcStart { +MFILE32-NEXT: DisplayName: f +MFILE32-NEXT: Section: _f +MFILE32-NEXT: CodeSize: 0x14 +MFILE32-NEXT: } +MFILE32-NEXT: ProcEnd MFILE32: ] MFILE32-NEXT: Subsection [ MFILE32-NEXT: Type: 0xF2 @@ -240,6 +326,12 @@ MFILE64: ] MFILE64-NEXT: Subsection [ MFILE64-NEXT: Type: 0xF1 MFILE64-NEXT: PayloadSize: 0x4B +MFILE64: ProcStart { +MFILE64-NEXT: DisplayName: f +MFILE64-NEXT: Section: f +MFILE64-NEXT: CodeSize: 0x18 +MFILE64-NEXT: } +MFILE64-NEXT: ProcEnd MFILE64: ] MFILE64-NEXT: Subsection [ MFILE64-NEXT: Type: 0xF2 @@ -280,3 +372,53 @@ MFILE64-NEXT: +0x13: 8 MFILE64-NEXT: ] MFILE64-NEXT: ] MFILE64-NEXT: ] + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; The following object files were generated using the following command: +; C:\src> cl /Z7 /Gy /c test.cc +; with the following contents of C:\src\test.cc: +; int f() +; { +; return 0; +; } +; +; int g() +; { +; return 0; +; } +; using 32-version of CL v17.00.61030 and v18.00.21005.1 respectively. +RUN: llvm-readobj -s -codeview-linetables %p/Inputs/comdat-function-linetables.obj.coff-2012-i386 \ +RUN: | FileCheck %s -check-prefix MCOMDAT +RUN: llvm-readobj -s -codeview-linetables %p/Inputs/comdat-function-linetables.obj.coff-2013-i386 \ +RUN: | FileCheck %s -check-prefix MCOMDAT + +MCOMDAT: ProcStart { +MCOMDAT-NEXT: DisplayName: f +MCOMDAT-NEXT: Section: ?f@@YAHXZ +MCOMDAT-NEXT: CodeSize: 0x7 +MCOMDAT-NEXT: } +MCOMDAT: FunctionLineTable [ +MCOMDAT-NEXT: FunctionName: ?f@@YAHXZ +MCOMDAT-NEXT: CodeSize: 0x7 +MCOMDAT-NEXT: FilenameSegment [ +MCOMDAT-NEXT: Filename: c:\src\test.cc +MCOMDAT-NEXT: +0x0: 2 +MCOMDAT-NEXT: +0x3: 3 +MCOMDAT-NEXT: +0x5: 4 +MCOMDAT-NEXT: ] +MCOMDAT-NEXT: ] +MCOMDAT: ProcStart { +MCOMDAT-NEXT: DisplayName: g +MCOMDAT-NEXT: Section: ?g@@YAHXZ +MCOMDAT-NEXT: CodeSize: 0x7 +MCOMDAT-NEXT: } +MCOMDAT: FunctionLineTable [ +MCOMDAT-NEXT: FunctionName: ?g@@YAHXZ +MCOMDAT-NEXT: CodeSize: 0x7 +MCOMDAT-NEXT: FilenameSegment [ +MCOMDAT-NEXT: Filename: c:\src\test.cc +MCOMDAT-NEXT: +0x0: 7 +MCOMDAT-NEXT: +0x3: 8 +MCOMDAT-NEXT: +0x5: 9 +MCOMDAT-NEXT: ] +MCOMDAT-NEXT: ] diff --git a/test/tools/llvm-readobj/coff-basereloc.test b/test/tools/llvm-readobj/coff-basereloc.test new file mode 100644 index 000000000000..cd6687cae44c --- /dev/null +++ b/test/tools/llvm-readobj/coff-basereloc.test @@ -0,0 +1,24 @@ +RUN: llvm-readobj -coff-basereloc %p/Inputs/basereloc.obj.coff-i386 | FileCheck %s + +CHECK: Format: COFF-i386 +CHECK-NEXT: Arch: i386 +CHECK-NEXT: AddressSize: 32bit +CHECK-NEXT: BaseReloc [ +CHECK-NEXT: Entry { +CHECK-NEXT: Type: HIGHLOW +CHECK-NEXT: Address: 0x1004 +CHECK-NEXT: } +CHECK-NEXT: Entry { +CHECK-NEXT: Type: HIGHLOW +CHECK-NEXT: Address: 0x100A +CHECK-NEXT: } +CHECK-NEXT: Entry { +CHECK-NEXT: Type: HIGHLOW +CHECK-NEXT: Address: 0x1010 +CHECK-NEXT: } +CHECK-NEXT: Entry { +CHECK-NEXT: Type: ABSOLUTE +CHECK-NEXT: Address: 0x1000 +CHECK-NEXT: } +CHECK-NEXT: ] + diff --git a/test/tools/llvm-readobj/coff-directives.test b/test/tools/llvm-readobj/coff-directives.test new file mode 100644 index 000000000000..83efffcf217f --- /dev/null +++ b/test/tools/llvm-readobj/coff-directives.test @@ -0,0 +1,2 @@ +RUN: llvm-readobj -coff-directives %p/Inputs/directives.obj.coff-x86_64 | FileCheck %s +CHECK: Directive(s): /DEFAULTLIB:"LIBCMT" /DEFAULTLIB:"OLDNAMES" diff --git a/test/tools/llvm-readobj/coff-exports.test b/test/tools/llvm-readobj/coff-exports.test new file mode 100644 index 000000000000..54b42fef84b5 --- /dev/null +++ b/test/tools/llvm-readobj/coff-exports.test @@ -0,0 +1,11 @@ +RUN: llvm-readobj -coff-exports %p/Inputs/export-x86.dll | FileCheck %s -check-prefix CHECK -check-prefix CHECK-X86 +RUN: llvm-readobj -coff-exports %p/Inputs/export-x64.dll | FileCheck %s -check-prefix CHECK -check-prefix CHECK-X64 +RUN: llvm-readobj -coff-exports %p/Inputs/export-arm.dll | FileCheck %s -check-prefix CHECK -check-prefix CHECK-ARM + +CHECK: Export { +CHECK: Ordinal: 1 +CHECK: Name: function +CHECK-X86: RVA: 0x1000 +CHECK-X64: RVA: 0x1000 +CHECK-ARM: RVA: 0x1001 +CHECK: } diff --git a/test/tools/llvm-readobj/coff-file-sections-reading.test b/test/tools/llvm-readobj/coff-file-sections-reading.test index 5c44c16f0058..c2f02d47de48 100644 --- a/test/tools/llvm-readobj/coff-file-sections-reading.test +++ b/test/tools/llvm-readobj/coff-file-sections-reading.test @@ -4,7 +4,7 @@ CHECK: Symbols [ CHECK: Symbol { CHECK: Name: .file CHECK: Value: 0 -CHECK: Section: (65534) +CHECK: Section: IMAGE_SYM_DEBUG (-2) CHECK: BaseType: Null (0x0) CHECK: ComplexType: Null (0x0) CHECK: StorageClass: File (0x67) diff --git a/test/tools/llvm-readobj/cxx-cli-aux.test b/test/tools/llvm-readobj/cxx-cli-aux.test index 90e73c033a86..0b687793547e 100644 --- a/test/tools/llvm-readobj/cxx-cli-aux.test +++ b/test/tools/llvm-readobj/cxx-cli-aux.test @@ -9,7 +9,7 @@ CHECK: Symbols [ CHECK: Symbol { CHECK: Name: ?PerAppDomain@@$$Q3HA CHECK-NEXT: Value: 4 -CHECK-NEXT: Section: (65535) +CHECK-NEXT: Section: IMAGE_SYM_ABSOLUTE (-1) CHECK-NEXT: BaseType: Null (0x0) CHECK-NEXT: ComplexType: Null (0x0) CHECK-NEXT: StorageClass: External (0x2) @@ -21,14 +21,13 @@ CHECK-NEXT: LineNumberCount: 0 CHECK-NEXT: Checksum: 0x0 CHECK-NEXT: Number: 0 CHECK-NEXT: Selection: NoDuplicates (0x1) -CHECK-NEXT: Unused: (00 00 00) CHECK-NEXT: } CHECK-NEXT: } CHECK: Symbol { CHECK: Name: 04000001 CHECK-NEXT: Value: 4 -CHECK-NEXT: Section: (65535) +CHECK-NEXT: Section: IMAGE_SYM_ABSOLUTE (-1) CHECK-NEXT: BaseType: Null (0x0) CHECK-NEXT: ComplexType: Null (0x0) CHECK-NEXT: StorageClass: CLRToken (0x6B) @@ -37,6 +36,5 @@ CHECK-NEXT: AuxCLRToken { CHECK-NEXT: AuxType: 1 CHECK-NEXT: Reserved: 0 CHECK-NEXT: SymbolTableIndex: ?PerAppDomain@@$$Q3HA (19) -CHECK-NEXT: Unused: (00 00 00 00 00 00 00 00 00 00 00 00) CHECK-NEXT: } CHECK-NEXT: } diff --git a/test/tools/llvm-readobj/file-headers.test b/test/tools/llvm-readobj/file-headers.test index 39a8c0ef8991..fd030ef0b56e 100644 --- a/test/tools/llvm-readobj/file-headers.test +++ b/test/tools/llvm-readobj/file-headers.test @@ -10,6 +10,16 @@ RUN: llvm-readobj -h %p/Inputs/trivial.obj.elf-i386 \ RUN: | FileCheck %s -check-prefix ELF32 RUN: llvm-readobj -h %p/Inputs/trivial.obj.elf-x86-64 \ RUN: | FileCheck %s -check-prefix ELF64 +RUN: llvm-readobj -h %p/Inputs/trivial.obj.macho-i386 \ +RUN: | FileCheck %s -check-prefix MACHO32 +RUN: llvm-readobj -h %p/Inputs/trivial.obj.macho-x86-64 \ +RUN: | FileCheck %s -check-prefix MACHO64 +RUN: llvm-readobj -h %p/Inputs/trivial.obj.macho-ppc \ +RUN: | FileCheck %s -check-prefix MACHO-PPC +RUN: llvm-readobj -h %p/Inputs/trivial.obj.macho-ppc64 \ +RUN: | FileCheck %s -check-prefix MACHO-PPC64 +RUN: llvm-readobj -h %p/Inputs/trivial.obj.macho-arm \ +RUN: | FileCheck %s -check-prefix MACHO-ARM RUN: llvm-readobj -h %p/Inputs/magic.coff-unknown \ RUN: | FileCheck %s -check-prefix COFF-UNKNOWN RUN: llvm-readobj -h %p/Inputs/magic.coff-importlib \ @@ -122,6 +132,88 @@ ELF64-NEXT: SectionHeaderCount: 10 ELF64-NEXT: StringTableSectionIndex: 7 ELF64-NEXT: } +MACHO32: File: {{(.*[/\\])?}}trivial.obj.macho-i386 +MACHO32-NEXT: Format: Mach-O 32-bit i386 +MACHO32-NEXT: Arch: i386 +MACHO32-NEXT: AddressSize: 32bit +MACHO32-NEXT: MachHeader { +MACHO32-NEXT: Magic: Magic (0xFEEDFACE) +MACHO32-NEXT: CpuType: X86 (0x7) +MACHO32-NEXT: CpuSubType: CPU_SUBTYPE_I386_ALL (0x3) +MACHO32-NEXT: FileType: Relocatable (0x1) +MACHO32-NEXT: NumOfLoadCommands: 3 +MACHO32-NEXT: SizeOfLoadCommands: 296 +MACHO32-NEXT: Flags [ (0x2000) +MACHO32-NEXT: MH_SUBSECTIONS_VIA_SYMBOLS (0x2000) +MACHO32-NEXT: ] +MACHO32-NEXT: } + +MACHO64: File: {{(.*[/\\])?}}trivial.obj.macho-x86-64 +MACHO64-NEXT: Format: Mach-O 64-bit x86-64 +MACHO64-NEXT: Arch: x86_64 +MACHO64-NEXT: AddressSize: 64bit +MACHO64-NEXT: MachHeader { +MACHO64-NEXT: Magic: Magic64 (0xFEEDFACF) +MACHO64-NEXT: CpuType: X86-64 (0x1000007) +MACHO64-NEXT: CpuSubType: CPU_SUBTYPE_X86_64_ALL (0x3) +MACHO64-NEXT: FileType: Relocatable (0x1) +MACHO64-NEXT: NumOfLoadCommands: 3 +MACHO64-NEXT: SizeOfLoadCommands: 336 +MACHO64-NEXT: Flags [ (0x2000) +MACHO64-NEXT: MH_SUBSECTIONS_VIA_SYMBOLS (0x2000) +MACHO64-NEXT: ] +MACHO64-NEXT: Reserved: 0x0 +MACHO64-NEXT: } + +MACHO-PPC: File: {{(.*[/\\])?}}trivial.obj.macho-ppc +MACHO-PPC-NEXT: Format: Mach-O 32-bit ppc +MACHO-PPC-NEXT: Arch: powerpc +MACHO-PPC-NEXT: AddressSize: 32bit +MACHO-PPC-NEXT: MachHeader { +MACHO-PPC-NEXT: Magic: Magic (0xFEEDFACE) +MACHO-PPC-NEXT: CpuType: PowerPC (0x12) +MACHO-PPC-NEXT: CpuSubType: CPU_SUBTYPE_POWERPC_ALL (0x0) +MACHO-PPC-NEXT: FileType: Relocatable (0x1) +MACHO-PPC-NEXT: NumOfLoadCommands: 3 +MACHO-PPC-NEXT: SizeOfLoadCommands: 500 +MACHO-PPC-NEXT: Flags [ (0x2000) +MACHO-PPC-NEXT: MH_SUBSECTIONS_VIA_SYMBOLS (0x2000) +MACHO-PPC-NEXT: ] +MACHO-PPC-NEXT: } + +MACHO-PPC64: File: {{(.*[/\\])?}}trivial.obj.macho-ppc64 +MACHO-PPC64-NEXT: Format: Mach-O 64-bit ppc64 +MACHO-PPC64-NEXT: Arch: powerpc64 +MACHO-PPC64-NEXT: AddressSize: 64bit +MACHO-PPC64-NEXT: MachHeader { +MACHO-PPC64-NEXT: Magic: Magic64 (0xFEEDFACF) +MACHO-PPC64-NEXT: CpuType: PowerPC64 (0x1000012) +MACHO-PPC64-NEXT: CpuSubtype: 0x0 +MACHO-PPC64-NEXT: FileType: Relocatable (0x1) +MACHO-PPC64-NEXT: NumOfLoadCommands: 3 +MACHO-PPC64-NEXT: SizeOfLoadCommands: 576 +MACHO-PPC64-NEXT: Flags [ (0x2000) +MACHO-PPC64-NEXT: MH_SUBSECTIONS_VIA_SYMBOLS (0x2000) +MACHO-PPC64-NEXT: ] +MACHO-PPC64-NEXT: Reserved: 0x0 +MACHO-PPC64-NEXT: } + +MACHO-ARM: File: {{(.*[/\\])?}}trivial.obj.macho-arm +MACHO-ARM-NEXT: Format: Mach-O arm +MACHO-ARM-NEXT: Arch: arm +MACHO-ARM-NEXT: AddressSize: 32bit +MACHO-ARM-NEXT: MachHeader { +MACHO-ARM-NEXT: Magic: Magic (0xFEEDFACE) +MACHO-ARM-NEXT: CpuType: Arm (0xC) +MACHO-ARM-NEXT: CpuSubType: CPU_SUBTYPE_ARM_V7 (0x9) +MACHO-ARM-NEXT: FileType: Relocatable (0x1) +MACHO-ARM-NEXT: NumOfLoadCommands: 3 +MACHO-ARM-NEXT: SizeOfLoadCommands: 636 +MACHO-ARM-NEXT: Flags [ (0x2000) +MACHO-ARM-NEXT: MH_SUBSECTIONS_VIA_SYMBOLS (0x2000) +MACHO-ARM-NEXT: ] +MACHO-ARM-NEXT: } + PE32: File: {{(.*[/\\])?}}trivial.exe.coff-i386 PE32-NEXT: Format: COFF-i386 PE32-NEXT: Arch: i386 @@ -159,7 +251,7 @@ PE32-NEXT: MinorSubsystemVersion: 0 PE32-NEXT: SizeOfImage: 16384 PE32-NEXT: SizeOfHeaders: 1024 PE32-NEXT: Subsystem: IMAGE_SUBSYSTEM_WINDOWS_CUI (0x3) -PE32-NEXT: Subsystem [ (0x8140) +PE32-NEXT: Characteristics [ (0x8140) PE32-NEXT: IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE (0x40) PE32-NEXT: IMAGE_DLL_CHARACTERISTICS_NX_COMPAT (0x100) PE32-NEXT: IMAGE_DLL_CHARACTERISTICS_TERMINAL_SERVER_AWARE (0x8000) @@ -204,6 +296,25 @@ PE32-NEXT: ReservedRVA: 0x0 PE32-NEXT: ReservedSize: 0x0 PE32-NEXT: } PE32-NEXT: } +PE32-NEXT: DOSHeader { +PE32-NEXT: Magic: MZ +PE32-NEXT: UsedBytesInTheLastPage: 144 +PE32-NEXT: FileSizeInPages: 3 +PE32-NEXT: NumberOfRelocationItems: 0 +PE32-NEXT: HeaderSizeInParagraphs: 4 +PE32-NEXT: MinimumExtraParagraphs: 0 +PE32-NEXT: MaximumExtraParagraphs: 65535 +PE32-NEXT: InitialRelativeSS: 0 +PE32-NEXT: InitialSP: 184 +PE32-NEXT: Checksum: 0 +PE32-NEXT: InitialIP: 0 +PE32-NEXT: InitialRelativeCS: 0 +PE32-NEXT: AddressOfRelocationTable: 64 +PE32-NEXT: OverlayNumber: 0 +PE32-NEXT: OEMid: 0 +PE32-NEXT: OEMinfo: 0 +PE32-NEXT: AddressOfNewExeHeader: 176 +PE32-NEXT: } COFF-UNKNOWN: Format: COFF-<unknown arch> COFF-UNKNOWN-NEXT: Arch: unknown @@ -224,12 +335,11 @@ COFF-IMPORTLIB-NEXT: Arch: unknown COFF-IMPORTLIB-NEXT: AddressSize: 32bit COFF-IMPORTLIB-NEXT: ImageFileHeader { COFF-IMPORTLIB-NEXT: Machine: IMAGE_FILE_MACHINE_UNKNOWN (0x0) -COFF-IMPORTLIB-NEXT: SectionCount: 65535 +COFF-IMPORTLIB-NEXT: SectionCount: 0 COFF-IMPORTLIB-NEXT: TimeDateStamp: 1970-09-09 19:52:32 (0x14C0000) -COFF-IMPORTLIB-NEXT: PointerToSymbolTable: 0x528542EB -COFF-IMPORTLIB-NEXT: SymbolCount: 20 +COFF-IMPORTLIB-NEXT: PointerToSymbolTable: 0x0 +COFF-IMPORTLIB-NEXT: SymbolCount: 0 COFF-IMPORTLIB-NEXT: OptionalHeaderSize: 0 -COFF-IMPORTLIB-NEXT: Characteristics [ (0x8) -COFF-IMPORTLIB-NEXT: IMAGE_FILE_LOCAL_SYMS_STRIPPED (0x8) +COFF-IMPORTLIB-NEXT: Characteristics [ (0x0) COFF-IMPORTLIB-NEXT: ] COFF-IMPORTLIB-NEXT: } diff --git a/test/tools/llvm-readobj/imports.test b/test/tools/llvm-readobj/imports.test new file mode 100644 index 000000000000..58512f42adcd --- /dev/null +++ b/test/tools/llvm-readobj/imports.test @@ -0,0 +1,88 @@ +RUN: llvm-readobj --coff-imports %p/Inputs/imports.exe.coff-i386 | FileCheck -check-prefix=X86 %s +RUN: llvm-readobj --coff-imports %p/Inputs/imports.exe.coff-x86-64 | FileCheck -check-prefix=X64 %s + +X86: Import { +X86-NEXT: Name: KERNEL32.dll +X86-NEXT: ImportLookupTableRVA: 0x2108 +X86-NEXT: ImportAddressTableRVA: 0x2000 +X86-NEXT: Symbol: ExitProcess (337) +X86-NEXT: Symbol: GetProcAddress (669) +X86-NEXT: Symbol: FreeLibrary (414) +X86-NEXT: Symbol: GetLastError (592) +X86-NEXT: Symbol: RaiseException (1087) +X86-NEXT: Symbol: LoadLibraryExA (934) +X86-NEXT: } +X86-NEXT: Import { +X86-NEXT: Name: USER32.dll +X86-NEXT: ImportLookupTableRVA: 0x2124 +X86-NEXT: ImportAddressTableRVA: 0x201C +X86-NEXT: Symbol: MessageBoxA (582) +X86-NEXT: } +X86-NEXT: Import { +X86-NEXT: Name: mydll.dll +X86-NEXT: ImportLookupTableRVA: 0x212C +X86-NEXT: ImportAddressTableRVA: 0x2024 +X86-NEXT: Symbol: Func1 (0) +X86-NEXT: Symbol: Func2 (1) +X86-NEXT: Symbol: (3) +X86-NEXT: } +X86-NEXT: DelayImport { +X86-NEXT: Name: lazyload.dll +X86-NEXT: Attributes: 0x1 +X86-NEXT: ModuleHandle: 0x301C +X86-NEXT: ImportAddressTable: 0x3010 +X86-NEXT: ImportNameTable: 0x2090 +X86-NEXT: BoundDelayImportTable: 0x20AC +X86-NEXT: UnloadDelayImportTable: 0x0 +X86-NEXT: Import { +X86-NEXT: Symbol: Func5 (0) +X86-NEXT: Address: 0x401073 +X86-NEXT: } +X86-NEXT: Import { +X86-NEXT: Symbol: Func4 (0) +X86-NEXT: Address: 0x401052 +X86-NEXT: } +X86-NEXT: } + +X64: Import { +X64-NEXT: Name: KERNEL32.dll +X64-NEXT: ImportLookupTableRVA: 0x2170 +X64-NEXT: ImportAddressTableRVA: 0x2000 +X64-NEXT: Symbol: ExitProcess (343) +X64-NEXT: Symbol: GetProcAddress (676) +X64-NEXT: Symbol: FreeLibrary (420) +X64-NEXT: Symbol: GetLastError (598) +X64-NEXT: Symbol: RaiseException (1091) +X64-NEXT: Symbol: LoadLibraryExA (937) +X64-NEXT: } +X64-NEXT: Import { +X64-NEXT: Name: USER32.dll +X64-NEXT: ImportLookupTableRVA: 0x21A8 +X64-NEXT: ImportAddressTableRVA: 0x2038 +X64-NEXT: Symbol: MessageBoxA (586) +X64-NEXT: } +X64-NEXT: Import { +X64-NEXT: Name: mydll.dll +X64-NEXT: ImportLookupTableRVA: 0x21B8 +X64-NEXT: ImportAddressTableRVA: 0x2048 +X64-NEXT: Symbol: Func1 (0) +X64-NEXT: Symbol: Func2 (1) +X64-NEXT: Symbol: (3) +X64-NEXT: } +X64-NEXT: DelayImport { +X64-NEXT: Name: lazyload.dll +X64-NEXT: Attributes: 0x1 +X64-NEXT: ModuleHandle: 0x3028 +X64-NEXT: ImportAddressTable: 0x3010 +X64-NEXT: ImportNameTable: 0x20E0 +X64-NEXT: BoundDelayImportTable: 0x2108 +X64-NEXT: UnloadDelayImportTable: 0x0 +X64-NEXT: Import { +X64-NEXT: Symbol: Func5 (0) +X64-NEXT: Address: 0x1400010F1 +X64-NEXT: } +X64-NEXT: Import { +X64-NEXT: Symbol: Func4 (0) +X64-NEXT: Address: 0x140001066 +X64-NEXT: } +X64-NEXT: } diff --git a/test/tools/llvm-readobj/peplus.test b/test/tools/llvm-readobj/peplus.test index 8e6f55085475..4d8d25db894c 100644 --- a/test/tools/llvm-readobj/peplus.test +++ b/test/tools/llvm-readobj/peplus.test @@ -35,7 +35,7 @@ CHECK: MinorSubsystemVersion: 0 CHECK: SizeOfImage: 8192 CHECK: SizeOfHeaders: 512 CHECK: Subsystem: IMAGE_SUBSYSTEM_WINDOWS_CUI (0x3) -CHECK: Subsystem [ (0x8160) +CHECK: Characteristics [ (0x8160) CHECK: IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE (0x40) CHECK: IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA (0x20) CHECK: IMAGE_DLL_CHARACTERISTICS_NX_COMPAT (0x100) diff --git a/test/tools/llvm-readobj/reloc-types.test b/test/tools/llvm-readobj/reloc-types.test index 0c8b54dbc6bf..36e2f7010bdf 100644 --- a/test/tools/llvm-readobj/reloc-types.test +++ b/test/tools/llvm-readobj/reloc-types.test @@ -149,7 +149,7 @@ ELF-PPC64: Type: R_PPC64_GOT_TPREL16_HA (90) ELF-PPC64: Type: R_PPC64_TLSGD (107) ELF-PPC64: Type: R_PPC64_TLSLD (108) -ELF-AARCH64: Type: R_AARCH64_NONE (256) +ELF-AARCH64: Type: R_AARCH64_NONE (0) ELF-AARCH64: Type: R_AARCH64_ABS64 (257) ELF-AARCH64: Type: R_AARCH64_ABS32 (258) ELF-AARCH64: Type: R_AARCH64_ABS16 (259) @@ -169,6 +169,7 @@ ELF-AARCH64: Type: R_AARCH64_MOVW_SABS_G2 (272) ELF-AARCH64: Type: R_AARCH64_LD_PREL_LO19 (273) ELF-AARCH64: Type: R_AARCH64_ADR_PREL_LO21 (274) ELF-AARCH64: Type: R_AARCH64_ADR_PREL_PG_HI21 (275) +ELF-AARCH64: Type: R_AARCH64_ADR_PREL_PG_HI21_NC (276) ELF-AARCH64: Type: R_AARCH64_ADD_ABS_LO12_NC (277) ELF-AARCH64: Type: R_AARCH64_LDST8_ABS_LO12_NC (278) ELF-AARCH64: Type: R_AARCH64_TSTBR14 (279) @@ -178,9 +179,39 @@ ELF-AARCH64: Type: R_AARCH64_CALL26 (283) ELF-AARCH64: Type: R_AARCH64_LDST16_ABS_LO12_NC (284) ELF-AARCH64: Type: R_AARCH64_LDST32_ABS_LO12_NC (285) ELF-AARCH64: Type: R_AARCH64_LDST64_ABS_LO12_NC (286) +ELF-AARCH64: Type: R_AARCH64_MOVW_PREL_G0 (287) +ELF-AARCH64: Type: R_AARCH64_MOVW_PREL_G0_NC (288) +ELF-AARCH64: Type: R_AARCH64_MOVW_PREL_G1 (289) +ELF-AARCH64: Type: R_AARCH64_MOVW_PREL_G1_NC (290) +ELF-AARCH64: Type: R_AARCH64_MOVW_PREL_G2 (291) +ELF-AARCH64: Type: R_AARCH64_MOVW_PREL_G2_NC (292) +ELF-AARCH64: Type: R_AARCH64_MOVW_PREL_G3 (293) ELF-AARCH64: Type: R_AARCH64_LDST128_ABS_LO12_NC (299) +ELF-AARCH64: Type: R_AARCH64_MOVW_GOTOFF_G0 (300) +ELF-AARCH64: Type: R_AARCH64_MOVW_GOTOFF_G0_NC (301) +ELF-AARCH64: Type: R_AARCH64_MOVW_GOTOFF_G1 (302) +ELF-AARCH64: Type: R_AARCH64_MOVW_GOTOFF_G1_NC (303) +ELF-AARCH64: Type: R_AARCH64_MOVW_GOTOFF_G2 (304) +ELF-AARCH64: Type: R_AARCH64_MOVW_GOTOFF_G2_NC (305) +ELF-AARCH64: Type: R_AARCH64_MOVW_GOTOFF_G3 (306) +ELF-AARCH64: Type: R_AARCH64_GOTREL64 (307) +ELF-AARCH64: Type: R_AARCH64_GOTREL32 (308) +ELF-AARCH64: Type: R_AARCH64_GOT_LD_PREL19 (309) +ELF-AARCH64: Type: R_AARCH64_LD64_GOTOFF_LO15 (310) ELF-AARCH64: Type: R_AARCH64_ADR_GOT_PAGE (311) ELF-AARCH64: Type: R_AARCH64_LD64_GOT_LO12_NC (312) +ELF-AARCH64: Type: R_AARCH64_LD64_GOTPAGE_LO15 (313) +ELF-AARCH64: Type: R_AARCH64_TLSGD_ADR_PREL21 (512) +ELF-AARCH64: Type: R_AARCH64_TLSGD_ADR_PAGE21 (513) +ELF-AARCH64: Type: R_AARCH64_TLSGD_ADD_LO12_NC (514) +ELF-AARCH64: Type: R_AARCH64_TLSGD_MOVW_G1 (515) +ELF-AARCH64: Type: R_AARCH64_TLSGD_MOVW_G0_NC (516) +ELF-AARCH64: Type: R_AARCH64_TLSLD_ADR_PREL21 (517) +ELF-AARCH64: Type: R_AARCH64_TLSLD_ADR_PAGE21 (518) +ELF-AARCH64: Type: R_AARCH64_TLSLD_ADD_LO12_NC (519) +ELF-AARCH64: Type: R_AARCH64_TLSLD_MOVW_G1 (520) +ELF-AARCH64: Type: R_AARCH64_TLSLD_MOVW_G0_NC (521) +ELF-AARCH64: Type: R_AARCH64_TLSLD_LD_PREL19 (522) ELF-AARCH64: Type: R_AARCH64_TLSLD_MOVW_DTPREL_G2 (523) ELF-AARCH64: Type: R_AARCH64_TLSLD_MOVW_DTPREL_G1 (524) ELF-AARCH64: Type: R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC (525) @@ -218,10 +249,29 @@ ELF-AARCH64: Type: R_AARCH64_TLSLE_LDST32_TPREL_LO12 (556) ELF-AARCH64: Type: R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC (557) ELF-AARCH64: Type: R_AARCH64_TLSLE_LDST64_TPREL_LO12 (558) ELF-AARCH64: Type: R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC (559) -ELF-AARCH64: Type: R_AARCH64_TLSDESC_ADR_PAGE (562) +ELF-AARCH64: Type: R_AARCH64_TLSDESC_LD_PREL19 (560) +ELF-AARCH64: Type: R_AARCH64_TLSDESC_ADR_PREL21 (561) +ELF-AARCH64: Type: R_AARCH64_TLSDESC_ADR_PAGE21 (562) ELF-AARCH64: Type: R_AARCH64_TLSDESC_LD64_LO12_NC (563) ELF-AARCH64: Type: R_AARCH64_TLSDESC_ADD_LO12_NC (564) +ELF-AARCH64: Type: R_AARCH64_TLSDESC_OFF_G1 (565) +ELF-AARCH64: Type: R_AARCH64_TLSDESC_OFF_G0_NC (566) +ELF-AARCH64: Type: R_AARCH64_TLSDESC_LDR (567) +ELF-AARCH64: Type: R_AARCH64_TLSDESC_ADD (568) ELF-AARCH64: Type: R_AARCH64_TLSDESC_CALL (569) +ELF-AARCH64: Type: R_AARCH64_TLSLE_LDST128_TPREL_LO12 (570) +ELF-AARCH64: Type: R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC (571) +ELF-AARCH64: Type: R_AARCH64_TLSLD_LDST128_DTPREL_LO12 (572) +ELF-AARCH64: Type: R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC (573) +ELF-AARCH64: Type: R_AARCH64_COPY (1024) +ELF-AARCH64: Type: R_AARCH64_GLOB_DAT (1025) +ELF-AARCH64: Type: R_AARCH64_JUMP_SLOT (1026) +ELF-AARCH64: Type: R_AARCH64_RELATIVE (1027) +ELF-AARCH64: Type: R_AARCH64_TLS_DTPREL64 (1028) +ELF-AARCH64: Type: R_AARCH64_TLS_DTPMOD64 (1029) +ELF-AARCH64: Type: R_AARCH64_TLS_TPREL64 (1030) +ELF-AARCH64: Type: R_AARCH64_TLSDESC (1031) +ELF-AARCH64: Type: R_AARCH64_IRELATIVE (1032) ELF-ARM: Type: R_ARM_NONE (0) ELF-ARM: Type: R_ARM_PC24 (1) @@ -250,7 +300,6 @@ ELF-ARM: Type: R_ARM_RELATIVE (23) ELF-ARM: Type: R_ARM_GOTOFF32 (24) ELF-ARM: Type: R_ARM_BASE_PREL (25) ELF-ARM: Type: R_ARM_GOT_BREL (26) -ELF-ARM: Type: R_ARM_PLT32 (27) ELF-ARM: Type: R_ARM_CALL (28) ELF-ARM: Type: R_ARM_JUMP24 (29) ELF-ARM: Type: R_ARM_THM_JUMP24 (30) @@ -354,6 +403,7 @@ ELF-ARM: Type: R_ARM_PRIVATE_15 (127) ELF-ARM: Type: R_ARM_ME_TOO (128) ELF-ARM: Type: R_ARM_THM_TLS_DESCSEQ16 (129) ELF-ARM: Type: R_ARM_THM_TLS_DESCSEQ32 (130) +ELF-ARM: Type: R_ARM_IRELATIVE (160) ELF-MIPS: Type: R_MIPS_NONE (0) ELF-MIPS: Type: R_MIPS_16 (1) diff --git a/test/tools/llvm-readobj/relocations.test b/test/tools/llvm-readobj/relocations.test index 864ded35a4e4..2e11aa27c37b 100644 --- a/test/tools/llvm-readobj/relocations.test +++ b/test/tools/llvm-readobj/relocations.test @@ -1,5 +1,9 @@ RUN: llvm-readobj -r %p/Inputs/trivial.obj.coff-i386 \ RUN: | FileCheck %s -check-prefix COFF +RUN: llvm-readobj -r %p/Inputs/bad-relocs.obj.coff-i386 \ +RUN: | FileCheck %s -check-prefix BAD-COFF-RELOCS +RUN: llvm-readobj -r %p/Inputs/relocs-no-symtab.obj.coff-i386 \ +RUN: | FileCheck %s -check-prefix BAD-COFF-RELOCS RUN: llvm-readobj -r %p/Inputs/trivial.obj.elf-i386 \ RUN: | FileCheck %s -check-prefix ELF RUN: llvm-readobj -r %p/Inputs/trivial.obj.macho-i386 \ @@ -21,6 +25,12 @@ COFF-NEXT: 0xE IMAGE_REL_I386_REL32 _SomeOtherFunction COFF-NEXT: } COFF-NEXT: ] +BAD-COFF-RELOCS: Relocations [ +BAD-COFF-RELOCS-NEXT: Section (1) sec { +BAD-COFF-RELOCS-NEXT: 0xDEADBEEF IMAGE_REL_I386_ABSOLUTE - +BAD-COFF-RELOCS-NEXT: } +BAD-COFF-RELOCS-NEXT: ] + ELF: Relocations [ ELF-NEXT: Section (2) .rel.text { ELF-NEXT: 0xC R_386_GOTPC _GLOBAL_OFFSET_TABLE_ 0x0 diff --git a/test/tools/llvm-readobj/sections-ext.test b/test/tools/llvm-readobj/sections-ext.test index 972d8e6f4ef7..4024878d2bde 100644 --- a/test/tools/llvm-readobj/sections-ext.test +++ b/test/tools/llvm-readobj/sections-ext.test @@ -52,7 +52,6 @@ COFF-NEXT: LineNumberCount: 0 COFF-NEXT: Checksum: 0x0 COFF-NEXT: Number: 1 COFF-NEXT: Selection: 0x0 -COFF-NEXT: Unused: (00 00 00) COFF-NEXT: } COFF-NEXT: } COFF-NEXT: Symbol { diff --git a/test/tools/llvm-readobj/symbols.test b/test/tools/llvm-readobj/symbols.test index 26830ac46a8a..71955e0d8235 100644 --- a/test/tools/llvm-readobj/symbols.test +++ b/test/tools/llvm-readobj/symbols.test @@ -7,7 +7,7 @@ COFF: Symbols [ COFF-NEXT: Symbol { COFF-NEXT: Name: @comp.id COFF-NEXT: Value: 14766605 -COFF-NEXT: Section: (65535) +COFF-NEXT: Section: IMAGE_SYM_ABSOLUTE (-1) COFF-NEXT: BaseType: Null (0x0) COFF-NEXT: ComplexType: Null (0x0) COFF-NEXT: StorageClass: Static (0x3) @@ -16,7 +16,7 @@ COFF-NEXT: } COFF-NEXT: Symbol { COFF-NEXT: Name: @feat.00 COFF-NEXT: Value: 2147484049 -COFF-NEXT: Section: (65535) +COFF-NEXT: Section: IMAGE_SYM_ABSOLUTE (-1) COFF-NEXT: BaseType: Null (0x0) COFF-NEXT: ComplexType: Null (0x0) COFF-NEXT: StorageClass: Static (0x3) @@ -37,7 +37,6 @@ COFF-NEXT: LineNumberCount: 0 COFF-NEXT: Checksum: 0x0 COFF-NEXT: Number: 1 COFF-NEXT: Selection: 0x0 -COFF-NEXT: Unused: (00 00 00) COFF-NEXT: } COFF-NEXT: } |