1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-02-01 05:01:59 +01:00
llvm-mirror/test/MC/RISCV/target-abi-valid.s
Alex Bradbury c75e6e294f [RISCV] Support -target-abi at the MC layer and for codegen
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
2019-03-09 09:28:06 +00:00

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