mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-01 05:01:59 +01:00
c75e6e294f
This patch adds proper handling of -target-abi, as accepted by llvm-mc and llc. Lowering (codegen) for the hard-float ABIs will follow in a subsequent patch. However, this patch does add MC layer support for the hard float and RVE ABIs (emission of the appropriate ELF flags https://github.com/riscv/riscv-elf-psabi-doc/blob/master/riscv-elf.md#-file-header). ABI parsing must be shared between codegen and the MC layer, so we add computeTargetABI to RISCVUtils. A warning will be printed if an invalid or unrecognized ABI is given. Differential Revision: https://reviews.llvm.org/D59023 llvm-svn: 355771
66 lines
2.9 KiB
ArmAsm
66 lines
2.9 KiB
ArmAsm
# RUN: llvm-mc -triple=riscv32 -filetype=obj < %s \
|
|
# RUN: | llvm-readobj -file-headers - \
|
|
# RUN: | FileCheck -check-prefix=CHECK-NONE %s
|
|
# RUN: llvm-mc -triple=riscv32 -target-abi ilp32 -filetype=obj < %s \
|
|
# RUN: | llvm-readobj -file-headers - \
|
|
# RUN: | FileCheck -check-prefix=CHECK-NONE %s
|
|
# RUN: llvm-mc -triple=riscv32 -mattr=+f -target-abi ilp32 -filetype=obj < %s \
|
|
# RUN: | llvm-readobj -file-headers - \
|
|
# RUN: | FileCheck -check-prefix=CHECK-NONE %s
|
|
# RUN: llvm-mc -triple=riscv32 -mattr=+d -target-abi ilp32 -filetype=obj < %s \
|
|
# RUN: | llvm-readobj -file-headers - \
|
|
# RUN: | FileCheck -check-prefix=CHECK-NONE %s
|
|
# RUN: llvm-mc -triple=riscv64 -filetype=obj < %s \
|
|
# RUN: | llvm-readobj -file-headers - \
|
|
# RUN: | FileCheck -check-prefix=CHECK-NONE %s
|
|
# RUN: llvm-mc -triple=riscv64 -target-abi lp64 -filetype=obj < %s \
|
|
# RUN: | llvm-readobj -file-headers - \
|
|
# RUN: | FileCheck -check-prefix=CHECK-NONE %s
|
|
# RUN: llvm-mc -triple=riscv64 -mattr=+f -target-abi lp64 -filetype=obj < %s \
|
|
# RUN: | llvm-readobj -file-headers - \
|
|
# RUN: | FileCheck -check-prefix=CHECK-NONE %s
|
|
# RUN: llvm-mc -triple=riscv64 -mattr=+d -target-abi lp64 -filetype=obj < %s \
|
|
# RUN: | llvm-readobj -file-headers - \
|
|
# RUN: | FileCheck -check-prefix=CHECK-NONE %s
|
|
|
|
# RUN: llvm-mc -triple=riscv32 -mattr=+f -target-abi ilp32f -filetype=obj < %s \
|
|
# RUN: | llvm-readobj -file-headers - \
|
|
# RUN: | FileCheck -check-prefix=CHECK-FLOAT-SINGLE %s
|
|
# RUN: llvm-mc -triple=riscv32 -mattr=+d -target-abi ilp32f -filetype=obj < %s \
|
|
# RUN: | llvm-readobj -file-headers - \
|
|
# RUN: | FileCheck -check-prefix=CHECK-FLOAT-SINGLE %s
|
|
# RUN: llvm-mc -triple=riscv64 -mattr=+f -target-abi lp64f -filetype=obj < %s \
|
|
# RUN: | llvm-readobj -file-headers - \
|
|
# RUN: | FileCheck -check-prefix=CHECK-FLOAT-SINGLE %s
|
|
# RUN: llvm-mc -triple=riscv64 -mattr=+d -target-abi lp64f -filetype=obj < %s \
|
|
# RUN: | llvm-readobj -file-headers - \
|
|
# RUN: | FileCheck -check-prefix=CHECK-FLOAT-SINGLE %s
|
|
|
|
# RUN: llvm-mc -triple=riscv32 -mattr=+d -target-abi ilp32d -filetype=obj < %s \
|
|
# RUN: | llvm-readobj -file-headers - \
|
|
# RUN: | FileCheck -check-prefix=CHECK-FLOAT-DOUBLE %s
|
|
# RUN: llvm-mc -triple=riscv64 -mattr=+d -target-abi lp64d -filetype=obj < %s \
|
|
# RUN: | llvm-readobj -file-headers - \
|
|
# RUN: | FileCheck -check-prefix=CHECK-FLOAT-DOUBLE %s
|
|
|
|
# RUN: llvm-mc -triple=riscv32 -target-abi ilp32e -filetype=obj < %s \
|
|
# RUN: | llvm-readobj -file-headers - \
|
|
# RUN: | FileCheck -check-prefix=CHECK-RVE %s
|
|
|
|
# CHECK-NONE: Flags [ (0x0)
|
|
# CHECK-NONE-NEXT: ]
|
|
|
|
# CHECK-FLOAT-SINGLE: Flags [ (0x2)
|
|
# CHECK-FLOAT-SINGLE-NEXT: EF_RISCV_FLOAT_ABI_SINGLE (0x2)
|
|
# CHECK-FLOAT-SINGLE-NEXT: ]
|
|
|
|
# CHECK-FLOAT-DOUBLE: Flags [ (0x4)
|
|
# CHECK-FLOAT-DOUBLE-NEXT: EF_RISCV_FLOAT_ABI_DOUBLE (0x4)
|
|
# CHECK-FLOAT-DOUBLE-NEXT: ]
|
|
|
|
# CHECK-RVE: Flags [ (0x8)
|
|
# CHECK-RVE-NEXT: EF_RISCV_RVE (0x8)
|
|
# CHECK-RVE-NEXT: ]
|
|
|
|
nop
|