summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorCharlie Turner <charlie.turner@arm.com>2015-01-05 13:12:17 +0000
committerCharlie Turner <charlie.turner@arm.com>2015-01-05 13:12:17 +0000
commit8b2caa458fc26df05009749a19650db3af73304b (patch)
tree51f72365ec7caf5e9545d577ea2379a2b96ca6d6 /llvm/test
parent8ec742c2f9c12e463365f97d25103dc2d095d7b3 (diff)
downloadbcm5719-llvm-8b2caa458fc26df05009749a19650db3af73304b.tar.gz
bcm5719-llvm-8b2caa458fc26df05009749a19650db3af73304b.zip
Emit the build attribute Tag_conformance.
Claim conformance to version 2.09 of the ARM ABI. This build attribute must be emitted first amongst the build attributes when written to an object file. This is to simplify conformance detection by consumers. Change-Id: If9eddcfc416bc9ad6e5cc8cdcb05d0031af7657e llvm-svn: 225166
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/CodeGen/ARM/build-attributes.ll1
-rw-r--r--llvm/test/MC/ARM/directive-eabi_attribute.s13
-rw-r--r--llvm/test/tools/llvm-readobj/ARM/attribute-conformance-1.s8
-rw-r--r--llvm/test/tools/llvm-readobj/ARM/attribute-conformance-2.s8
4 files changed, 25 insertions, 5 deletions
diff --git a/llvm/test/CodeGen/ARM/build-attributes.ll b/llvm/test/CodeGen/ARM/build-attributes.ll
index d017e066562..3d1b2b7c8e0 100644
--- a/llvm/test/CodeGen/ARM/build-attributes.ll
+++ b/llvm/test/CodeGen/ARM/build-attributes.ll
@@ -279,6 +279,7 @@
; V7-FAST: .eabi_attribute 23, 1
; V8: .syntax unified
+; V8: .eabi_attribute 67, "2.09"
; V8: .eabi_attribute 6, 14
; V8-NOT: .eabi_attribute 19
; V8: .eabi_attribute 20, 1
diff --git a/llvm/test/MC/ARM/directive-eabi_attribute.s b/llvm/test/MC/ARM/directive-eabi_attribute.s
index 135afa74f2f..ac7358f39d7 100644
--- a/llvm/test/MC/ARM/directive-eabi_attribute.s
+++ b/llvm/test/MC/ARM/directive-eabi_attribute.s
@@ -5,6 +5,14 @@
.syntax unified
.thumb
+ .eabi_attribute Tag_conformance, "2.09"
+@ CHECK: .eabi_attribute 67, "2.09"
+@ Tag_conformance should be be emitted first in a file-scope
+@ sub-subsection of the first public subsection of the attributes
+@ section. 2.3.7.4 of ABI Addenda.
+@ CHECK-OBJ: Tag: 67
+@ CHECK-OBJ-NEXT: TagName: conformance
+@ CHECK-OBJ-NEXT: Value: 2.09
.eabi_attribute Tag_CPU_raw_name, "Cortex-A9"
@ CHECK: .eabi_attribute 4, "Cortex-A9"
@ CHECK-OBJ: Tag: 4
@@ -220,11 +228,6 @@
@ CHECK-OBJ-NEXT: Value: 0
@ CHECK-OBJ-NEXT: TagName: T2EE_use
@ CHECK-OBJ-NEXT: Description: Not Permitted
- .eabi_attribute Tag_conformance, "2.09"
-@ CHECK: .eabi_attribute 67, "2.09"
-@ CHECK-OBJ: Tag: 67
-@ CHECK-OBJ-NEXT: TagName: conformance
-@ CHECK-OBJ-NEXT: Value: 2.09
.eabi_attribute Tag_Virtualization_use, 0
@ CHECK: .eabi_attribute 68, 0
@ CHECK-OBJ: Tag: 68
diff --git a/llvm/test/tools/llvm-readobj/ARM/attribute-conformance-1.s b/llvm/test/tools/llvm-readobj/ARM/attribute-conformance-1.s
new file mode 100644
index 00000000000..daa44c14eca
--- /dev/null
+++ b/llvm/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/llvm/test/tools/llvm-readobj/ARM/attribute-conformance-2.s b/llvm/test/tools/llvm-readobj/ARM/attribute-conformance-2.s
new file mode 100644
index 00000000000..47c83c03696
--- /dev/null
+++ b/llvm/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...!!
OpenPOWER on IntegriCloud