mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-21 18:29:46 +00:00
The string data for string-valued build attributes were being unconditionally uppercased. There is no mention in the ARM ABI addenda about case conventions, so it's technically implementation defined as to whether the data are capitialised in some way or not. However, there are good reasons not to captialise the data. * It's less work. * Some vendors may legitimately have case-sensitive checks for these attributes which would fail on LLVM generated object files. * There could be locale issues with uppercasing. The original reasons for uppercasing appear to have stemmed from an old codesourcery toolchain behaviour, see http://comments.gmane.org/gmane.comp.compilers.llvm.cvs/87133 This patch makes the object file emitted no longer captialise string data, it encodes as seen in the assembly source. Change-Id: Ibe20dd6e60d2773d57ff72a78470839033aa5538 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222882 91177308-0d34-0410-b5e6-96231b3b80d8
86 lines
1.9 KiB
ArmAsm
86 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_FP_HP_extension (=36)
|
|
.eabi_attribute 36, 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: 71
|
|
// CHECK-NEXT: Link: 0
|
|
// CHECK-NEXT: Info: 0
|
|
// CHECK-NEXT: AddressAlignment: 1
|
|
// CHECK-NEXT: EntrySize: 0
|
|
// CHECK-NEXT: SectionData (
|
|
// CHECK-NEXT: 0000: 41460000 00616561 62690001 3C000000
|
|
// CHECK-NEXT: 0010: 05636F72 7465782D 61380006 0A074108
|
|
// CHECK-NEXT: 0020: 0109020A 030C0214 01150117 01180119
|
|
// CHECK-NEXT: 0030: 011B001C 0124012A 012C0244 036EA001
|
|
// CHECK-NEXT: 0040: 81013100 FA0101
|
|
// CHECK-NEXT: )
|