1// REQUIRES:arm 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/Inputs/arm-vfp-arg-compat.s -o %tcompat.o 6// RUN: llvm-mc -filetype=obj -triple=armv7a-none-linux-gnueabi %s -o %t.o 7 8// The default for this file is 0 (Base AAPCS) 9// RUN: ld.lld %t.o -o %tdefault 10// RUN: llvm-readobj --file-headers %tdefault | FileCheck -check-prefix=CHECK-BASE %s 11 12// Expect explicit Base AAPCS. 13// RUN: ld.lld %t.o %tbase.o -o %tbase 14// RUN: llvm-readobj --file-headers %tbase | FileCheck -check-prefix=CHECK-BASE %s 15 16// Expect explicit Base AAPCS when linking Base and Compatible. 17// RUN: ld.lld %t.o %tbase.o %tcompat.o -o %tbasecompat 18// RUN: llvm-readobj --file-headers %tbasecompat | FileCheck -check-prefix=CHECK-BASE %s 19 20// CHECK-BASE: Flags [ (0x5000200) 21// CHECK-BASE-NEXT: 0x200 22// CHECK-BASE-NEXT: 0x1000000 23// CHECK-BASE-NEXT: 0x4000000 24// CHECK-BASE-NEXT: ] 25 26// Expect Hard float VFP AAPCS 27// RUN: ld.lld %t.o %tvfp.o -o %tvfp 28// RUN: llvm-readobj --file-headers %tvfp | FileCheck -check-prefix=CHECK-VFP %s 29 30// Expect Hard float VFP AAPCS when linking VFP and Compatible 31// RUN: ld.lld %t.o %tvfp.o %tcompat.o -o %tvfpcompat 32// RUN: llvm-readobj --file-headers %tvfpcompat | FileCheck -check-prefix=CHECK-VFP %s 33 34// CHECK-VFP: Flags [ (0x5000400) 35// CHECK-VFP-NEXT: 0x400 36// CHECK-VFP-NEXT: 0x1000000 37// CHECK-VFP-NEXT: 0x4000000 38// CHECK-VFP-NEXT: ] 39 40// Expect Toolchain specifc to not use either Base or VFP AAPCS 41// RUN: ld.lld %t.o %ttoolchain.o -o %ttoolchain 42// RUN: llvm-readobj --file-headers %ttoolchain | FileCheck -check-prefix=CHECK-TOOLCHAIN %s 43 44// Expect Toolchain and Compatible to have same affect as Toolchain. 45// RUN: ld.lld %t.o %ttoolchain.o %tcompat.o -o %ttoolchaincompat 46// RUN: llvm-readobj --file-headers %ttoolchaincompat | FileCheck -check-prefix=CHECK-TOOLCHAIN %s 47 48// CHECK-TOOLCHAIN: Flags [ (0x5000000) 49// CHECK-TOOLCHAIN-NEXT: 0x1000000 50// CHECK-TOOLCHAIN-NEXT: 0x4000000 51// CHECK-TOOLCHAIN-NEXT: ] 52 53 .arch armv7-a 54 .eabi_attribute 20, 1 55 .eabi_attribute 21, 1 56 .eabi_attribute 23, 3 57 .eabi_attribute 24, 1 58 .eabi_attribute 25, 1 59 .eabi_attribute 26, 2 60 .eabi_attribute 30, 6 61 .eabi_attribute 34, 1 62 .eabi_attribute 18, 4 63 // We do not specify Tag_ABI_VFP_args (.eabi_attribute 28) in this file. 64 // When omitted the value of the tag defaults to 0, however if there 65 // are other files with explicit Tag_ABI_VFP_args we use that in 66 // preference. 67 68 69 .syntax unified 70 .globl _start 71 .type _start, %function 72_start: bx lr 73