|
1 | 1 | // REQUIRES:arm
|
2 |
| - |
3 |
| -// RUN: rm -rf %t |
4 |
| -// RUN: split-file %s %t |
5 |
| - |
6 |
| -// RUN: llvm-mc -filetype=obj -triple=armv7a-none-linux-gnueabi %S/Inputs/arm-vfp-arg-base.s -o %t/base.o |
7 |
| -// RUN: llvm-mc -filetype=obj -triple=armv7a-none-linux-gnueabi %S/Inputs/arm-vfp-arg-vfp.s -o %t/vfp.o |
8 |
| -// RUN: llvm-mc -filetype=obj -triple=armv7a-none-linux-gnueabi %S/Inputs/arm-vfp-arg-toolchain.s -o %t/toolchain.o |
9 |
| -// RUN: llvm-mc -filetype=obj -triple=armv7a-none-linux-gnueabi %t/main.s -o %t/main.o |
10 |
| -// RUN: llvm-mc -filetype=obj -triple=armv7a-none-linux-gnueabi %t/vendor.s -o %t/vendor.o |
11 |
| -// RUN: not ld.lld %t/main.o %t/base.o %t/vfp.o -o%t/a.out 2>&1 | FileCheck %s |
12 |
| -// RUN: not ld.lld %t/main.o %t/base.o %t/vendor.o -o%t/a.out 2>&1 | FileCheck %s |
13 |
| -// RUN: not ld.lld %t/main.o %t/base.o %t/toolchain.o -o%t/a.out 2>&1 | FileCheck %s |
14 |
| -// RUN: not ld.lld %t/main.o %t/vfp.o %t/base.o -o%t/a.out 2>&1 | FileCheck %s |
15 |
| -// RUN: not ld.lld %t/main.o %t/vfp.o %t/toolchain.o -o%t/a.out 2>&1 | FileCheck %s |
16 |
| -// RUN: not ld.lld %t/main.o %t/toolchain.o %t/base.o -o%t/a.out 2>&1 | FileCheck %s |
17 |
| -// RUN: not ld.lld %t/main.o %t/toolchain.o %t/vfp.o -o%t/a.out 2>&1 | FileCheck %s |
| 2 | +// RUN: llvm-mc -filetype=obj -triple=armv7a-none-linux-gnueabi %S/Inputs/arm-vfp-arg-base.s -o %tbase.o |
| 3 | +// RUN: llvm-mc -filetype=obj -triple=armv7a-none-linux-gnueabi %S/Inputs/arm-vfp-arg-vfp.s -o %tvfp.o |
| 4 | +// RUN: llvm-mc -filetype=obj -triple=armv7a-none-linux-gnueabi %S/Inputs/arm-vfp-arg-toolchain.s -o %ttoolchain.o |
| 5 | +// RUN: llvm-mc -filetype=obj -triple=armv7a-none-linux-gnueabi %s -o %t.o |
| 6 | +// RUN: not ld.lld %t.o %tbase.o %tvfp.o -o%t 2>&1 | FileCheck %s |
| 7 | +// RUN: not ld.lld %t.o %tbase.o %ttoolchain.o -o%t 2>&1 | FileCheck %s |
| 8 | +// RUN: not ld.lld %t.o %tvfp.o %tbase.o -o%t 2>&1 | FileCheck %s |
| 9 | +// RUN: not ld.lld %t.o %tvfp.o %ttoolchain.o -o%t 2>&1 | FileCheck %s |
| 10 | +// RUN: not ld.lld %t.o %ttoolchain.o %tbase.o -o%t 2>&1 | FileCheck %s |
| 11 | +// RUN: not ld.lld %t.o %ttoolchain.o %tvfp.o -o%t 2>&1 | FileCheck %s |
18 | 12 |
|
19 | 13 | // CHECK: incompatible Tag_ABI_VFP_args
|
20 |
| - |
21 |
| -//--- main.s |
22 |
| - |
23 | 14 | .arch armv7-a
|
24 | 15 | .eabi_attribute 20, 1
|
25 | 16 | .eabi_attribute 21, 1
|
|
36 | 27 | .globl _start
|
37 | 28 | .type _start, %function
|
38 | 29 | _start: bx lr
|
39 |
| - |
40 |
| -//--- vendor.s |
41 |
| - |
42 |
| - .syntax unified |
43 |
| - |
44 |
| - // Manually construct a custom .ARM.attributes section |
45 |
| - .section .ARM.attributes,"",%0x70000003 // SHT_ARM_ATTRIBUTES |
46 |
| - |
47 |
| - // Initial byte giving the section format version |
48 |
| - .byte 'A' |
49 |
| - |
50 |
| - // Subsection with a name that won't be recognised as a known vendor |
51 |
| -vendor_subsect_start: |
52 |
| - .word vendor_subsect_end - vendor_subsect_start // subsection length |
53 |
| - .asciz "ShouldBeIgnored" // vendor name |
54 |
| - .dcb.b 64, 0xff // dummy vendor section contents |
55 |
| -vendor_subsect_end: |
56 |
| - |
57 |
| - // Subsection that should be identical to the attributes defined by |
58 |
| - // Inputs/arm-vfp-arg-vfp.s |
59 |
| -aeabi_subsect_start: |
60 |
| - .word aeabi_subsect_end - aeabi_subsect_start |
61 |
| - .asciz "aeabi" // vendor name indicating the standard subsection |
62 |
| -file_subsubsect_start: |
63 |
| - .byte 1 // introduce sub-subsection of attributes for the whole file |
64 |
| - .word file_subsubsect_end - file_subsubsect_start // sub-subsection len |
65 |
| - .byte 5 // CPU_name |
66 |
| - .asciz "7-A" |
67 |
| - .byte 6, 10 // CPU_arch = ARM v7 |
68 |
| - .byte 7, 'A' // CPU_arch_profile = Application |
69 |
| - .byte 8, 1 // ARM_ISA_use = Permitted |
70 |
| - .byte 9, 2 // THUMB_ISA_use = Thumb-2 |
71 |
| - .byte 18, 4 // ABI_PCS_wchar_t = 4-byte |
72 |
| - .byte 20, 1 // ABI_FP_denormal = IEEE-754 |
73 |
| - .byte 21, 1 // ABI_FP_exceptions = IEEE-754 |
74 |
| - .byte 23, 3 // ABI_FP_number_model = IEEE-754 |
75 |
| - .byte 24, 1 // ABI_align_needed = 8-byte alignment |
76 |
| - .byte 25, 1 // ABI_align_preserved = 8-byte data alignment |
77 |
| - .byte 26, 2 // ABI_enum_size = Int32 |
78 |
| - .byte 28, 1 // ABI_VFP_args = AAPCS VFP |
79 |
| - .byte 30, 6 // ABI_optimization_goals = Best Debugging |
80 |
| - .byte 34, 1 // CPU_unaligned_access = v6-style |
81 |
| -file_subsubsect_end: |
82 |
| -aeabi_subsect_end: |
83 |
| - |
84 |
| - .text |
85 |
| - .global f1 |
86 |
| - .type f1, %function |
87 |
| -f1: bx lr |
0 commit comments