184 lines
6.4 KiB
ArmAsm
184 lines
6.4 KiB
ArmAsm
// RUN: llvm-mc -filetype=obj -triple=armv7a-none-linux-gnueabi %S/Inputs/arm-attributes1.s -o %t1.o
|
|
// RUN: llvm-mc -filetype=obj -triple=armv7a-none-linux-gnueabi %s -o %t2.o
|
|
|
|
// RUN: ld.lld %t1.o %t2.o -o %t
|
|
// RUN: llvm-readobj -arm-attributes %t | FileCheck %s
|
|
// RUN: ld.lld %t1.o %t2.o -shared -o %t2
|
|
// RUN: llvm-readobj -arm-attributes %t2 | FileCheck %s
|
|
// RUN: ld.lld %t1.o %t2.o -r -o %t3
|
|
// RUN: llvm-readobj -arm-attributes %t3 | FileCheck %s
|
|
// REQUIRES: arm
|
|
|
|
// Check that we retain only 1 SHT_ARM_ATTRIBUTES section. At present we do not
|
|
// try and merge or use the contents of SHT_ARM_ATTRIBUTES sections. We just
|
|
// pass the first one through.
|
|
.text
|
|
.syntax unified
|
|
.eabi_attribute 67, "2.09" @ Tag_conformance
|
|
.cpu cortex-a8
|
|
.eabi_attribute 6, 10 @ Tag_CPU_arch
|
|
.eabi_attribute 7, 65 @ Tag_CPU_arch_profile
|
|
.eabi_attribute 8, 1 @ Tag_ARM_ISA_use
|
|
.eabi_attribute 9, 2 @ Tag_THUMB_ISA_use
|
|
.fpu neon
|
|
.eabi_attribute 15, 1 @ Tag_ABI_PCS_RW_data
|
|
.eabi_attribute 16, 1 @ Tag_ABI_PCS_RO_data
|
|
.eabi_attribute 17, 2 @ Tag_ABI_PCS_GOT_use
|
|
.eabi_attribute 20, 1 @ Tag_ABI_FP_denormal
|
|
.eabi_attribute 21, 1 @ Tag_ABI_FP_exceptions
|
|
.eabi_attribute 23, 3 @ Tag_ABI_FP_number_model
|
|
.eabi_attribute 34, 1 @ Tag_CPU_unaligned_access
|
|
.eabi_attribute 24, 1 @ Tag_ABI_align_needed
|
|
.eabi_attribute 25, 1 @ Tag_ABI_align_preserved
|
|
.eabi_attribute 38, 1 @ Tag_ABI_FP_16bit_format
|
|
.eabi_attribute 18, 4 @ Tag_ABI_PCS_wchar_t
|
|
.eabi_attribute 26, 2 @ Tag_ABI_enum_size
|
|
.eabi_attribute 14, 0 @ Tag_ABI_PCS_R9_use
|
|
.eabi_attribute 68, 1 @ Tag_Virtualization_use
|
|
.globl _start
|
|
.p2align 2
|
|
.type _start,%function
|
|
_start:
|
|
.globl func
|
|
bl func
|
|
bx lr
|
|
|
|
// CHECK: BuildAttributes {
|
|
// CHECK-NEXT: FormatVersion: 0x41
|
|
// CHECK-NEXT: Section 1 {
|
|
// CHECK-NEXT: SectionLength: 72
|
|
// CHECK-NEXT: Vendor: aeabi
|
|
// CHECK-NEXT: Tag: Tag_File (0x1)
|
|
// CHECK-NEXT: Size: 62
|
|
// CHECK-NEXT: FileAttributes {
|
|
// CHECK-NEXT: Attribute {
|
|
// CHECK-NEXT: Tag: 67
|
|
// CHECK-NEXT: TagName: conformance
|
|
// CHECK-NEXT: Value: 2.09
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: Attribute {
|
|
// CHECK-NEXT: Tag: 5
|
|
// CHECK-NEXT: TagName: CPU_name
|
|
// CHECK-NEXT: Value: cortex-a8
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: Attribute {
|
|
// CHECK-NEXT: Tag: 6
|
|
// CHECK-NEXT: Value: 10
|
|
// CHECK-NEXT: TagName: CPU_arch
|
|
// CHECK-NEXT: Description: ARM v7
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: Attribute {
|
|
// CHECK-NEXT: Tag: 7
|
|
// CHECK-NEXT: Value: 65
|
|
// CHECK-NEXT: TagName: CPU_arch_profile
|
|
// CHECK-NEXT: Description: Application
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: Attribute {
|
|
// CHECK-NEXT: Tag: 8
|
|
// CHECK-NEXT: Value: 1
|
|
// CHECK-NEXT: TagName: ARM_ISA_use
|
|
// CHECK-NEXT: Description: Permitted
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: Attribute {
|
|
// CHECK-NEXT: Tag: 9
|
|
// CHECK-NEXT: Value: 2
|
|
// CHECK-NEXT: TagName: THUMB_ISA_use
|
|
// CHECK-NEXT: Description: Thumb-2
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: Attribute {
|
|
// CHECK-NEXT: Tag: 10
|
|
// CHECK-NEXT: Value: 3
|
|
// CHECK-NEXT: TagName: FP_arch
|
|
// CHECK-NEXT: Description: VFPv3
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: Attribute {
|
|
// CHECK-NEXT: Tag: 12
|
|
// CHECK-NEXT: Value: 1
|
|
// CHECK-NEXT: TagName: Advanced_SIMD_arch
|
|
// CHECK-NEXT: Description: NEONv1
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: Attribute {
|
|
// CHECK-NEXT: Tag: 14
|
|
// CHECK-NEXT: Value: 0
|
|
// CHECK-NEXT: TagName: ABI_PCS_R9_use
|
|
// CHECK-NEXT: Description: v6
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: Attribute {
|
|
// CHECK-NEXT: Tag: 15
|
|
// CHECK-NEXT: Value: 1
|
|
// CHECK-NEXT: TagName: ABI_PCS_RW_data
|
|
// CHECK-NEXT: Description: PC-relative
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: Attribute {
|
|
// CHECK-NEXT: Tag: 16
|
|
// CHECK-NEXT: Value: 1
|
|
// CHECK-NEXT: TagName: ABI_PCS_RO_data
|
|
// CHECK-NEXT: Description: PC-relative
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: Attribute {
|
|
// CHECK-NEXT: Tag: 17
|
|
// CHECK-NEXT: Value: 2
|
|
// CHECK-NEXT: TagName: ABI_PCS_GOT_use
|
|
// CHECK-NEXT: Description: GOT-Indirect
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: Attribute {
|
|
// CHECK-NEXT: Tag: 18
|
|
// CHECK-NEXT: Value: 4
|
|
// CHECK-NEXT: TagName: ABI_PCS_wchar_t
|
|
// CHECK-NEXT: Description: 4-byte
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: Attribute {
|
|
// CHECK-NEXT: Tag: 20
|
|
// CHECK-NEXT: Value: 1
|
|
// CHECK-NEXT: TagName: ABI_FP_denormal
|
|
// CHECK-NEXT: Description: IEEE-754
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: Attribute {
|
|
// CHECK-NEXT: Tag: 21
|
|
// CHECK-NEXT: Value: 1
|
|
// CHECK-NEXT: TagName: ABI_FP_exceptions
|
|
// CHECK-NEXT: Description: IEEE-754
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: Attribute {
|
|
// CHECK-NEXT: Tag: 23
|
|
// CHECK-NEXT: Value: 3
|
|
// CHECK-NEXT: TagName: ABI_FP_number_model
|
|
// CHECK-NEXT: Description: IEEE-754
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: Attribute {
|
|
// CHECK-NEXT: Tag: 24
|
|
// CHECK-NEXT: Value: 1
|
|
// CHECK-NEXT: TagName: ABI_align_needed
|
|
// CHECK-NEXT: Description: 8-byte alignment
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: Attribute {
|
|
// CHECK-NEXT: Tag: 25
|
|
// CHECK-NEXT: Value: 1
|
|
// CHECK-NEXT: TagName: ABI_align_preserved
|
|
// CHECK-NEXT: Description: 8-byte data alignment
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: Attribute {
|
|
// CHECK-NEXT: Tag: 26
|
|
// CHECK-NEXT: Value: 2
|
|
// CHECK-NEXT: TagName: ABI_enum_size
|
|
// CHECK-NEXT: Description: Int32
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: Attribute {
|
|
// CHECK-NEXT: Tag: 34
|
|
// CHECK-NEXT: Value: 1
|
|
// CHECK-NEXT: TagName: CPU_unaligned_access
|
|
// CHECK-NEXT: Description: v6-style
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: Attribute {
|
|
// CHECK-NEXT: Tag: 38
|
|
// CHECK-NEXT: Value: 1
|
|
// CHECK-NEXT: TagName: ABI_FP_16bit_format
|
|
// CHECK-NEXT: Description: IEEE-754
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: Attribute {
|
|
// CHECK-NEXT: Tag: 68
|
|
// CHECK-NEXT: Value: 1
|
|
// CHECK-NEXT: TagName: Virtualization_use
|
|
// CHECK-NEXT: Description: TrustZone
|
|
// CHECK-NEXT: }
|