mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-30 17:33:24 +00:00
6186de5c54
Add a Virtualization ARM subtarget feature along with adding proper build attribute emission for Tag_Virtualization_use (encodes Virtualization and TrustZone) and Tag_MPextension_use. Also rework test/CodeGen/ARM/2010-10-19-mc-elf-objheader.ll testcase to something that is more maintainable. This changes the focus of this testcase away from testing CPU defaults (which is tested elsewhere), onto specifically testing that attributes are encoded correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193859 91177308-0d34-0410-b5e6-96231b3b80d8
83 lines
1.9 KiB
ArmAsm
83 lines
1.9 KiB
ArmAsm
// This tests that ARM attributes are properly encoded.
|
|
|
|
// RUN: llvm-mc < %s -triple=arm-linux-gnueabi -filetype=obj -o - \
|
|
// RUN: | llvm-readobj -s -sd | FileCheck %s
|
|
|
|
// Tag_CPU_name (=5)
|
|
.cpu Cortex-A8
|
|
|
|
// Tag_CPU_arch (=6)
|
|
.eabi_attribute 6, 10
|
|
|
|
// Tag_arch_profile (=7)
|
|
.eabi_attribute 7, 'A'
|
|
|
|
// Tag_ARM_ISA_use (=8)
|
|
.eabi_attribute 8, 1
|
|
|
|
// Tag_THUMB_ISA_use (=9)
|
|
.eabi_attribute 9, 2
|
|
|
|
// Tag_FP_arch (=10)
|
|
.fpu vfpv3
|
|
|
|
// Tag_Advanced_SIMD_arch (=12)
|
|
.eabi_attribute 12, 2
|
|
|
|
// Tag_ABI_FP_denormal (=20)
|
|
.eabi_attribute 20, 1
|
|
|
|
// Tag_ABI_FP_exceptions (=21)
|
|
.eabi_attribute 21, 1
|
|
|
|
// Tag_ABI_FP_number_model (=23)
|
|
.eabi_attribute 23, 1
|
|
|
|
// Tag_ABI_align_needed (=24)
|
|
.eabi_attribute 24, 1
|
|
|
|
// Tag_ABI_align_preserved (=25)
|
|
.eabi_attribute 25, 1
|
|
|
|
// Tag_ABI_HardFP_use (=27)
|
|
.eabi_attribute 27, 0
|
|
|
|
// Tag_ABI_VFP_args (=28)
|
|
.eabi_attribute 28, 1
|
|
|
|
// Tag_MPextension_use (=42)
|
|
.eabi_attribute 42, 1
|
|
|
|
// Tag_DIV_use (=44)
|
|
.eabi_attribute 44, 2
|
|
|
|
// Tag_Virtualization_use (=68)
|
|
.eabi_attribute 68, 3
|
|
|
|
// Check that values > 128 are encoded properly
|
|
.eabi_attribute 110, 160
|
|
|
|
// Check that tags > 128 are encoded properly
|
|
.eabi_attribute 129, 1
|
|
.eabi_attribute 250, 1
|
|
|
|
// CHECK: Section {
|
|
// CHECK: Name: .ARM.attributes
|
|
// CHECK-NEXT: Type: SHT_ARM_ATTRIBUTES
|
|
// CHECK-NEXT: Flags [ (0x0)
|
|
// CHECK-NEXT: ]
|
|
// CHECK-NEXT: Address: 0x0
|
|
// CHECK-NEXT: Offset: 0x34
|
|
// CHECK-NEXT: Size: 68
|
|
// CHECK-NEXT: Link: 0
|
|
// CHECK-NEXT: Info: 0
|
|
// CHECK-NEXT: AddressAlignment: 1
|
|
// CHECK-NEXT: EntrySize: 0
|
|
// CHECK-NEXT: SectionData (
|
|
// CHECK-NEXT: 0000: 41430000 00616561 62690001 39000000
|
|
// CHECK-NEXT: 0010: 05434F52 5445582D 41380006 0A074108
|
|
// CHECK-NEXT: 0020: 0109020A 030C0214 01150117 01180119
|
|
// CHECK-NEXT: 0030: 011B001C 012A012C 0244036E A0018101
|
|
// CHECK-NEXT: 0040: 01FA0101
|
|
// CHECK-NEXT: )
|