mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 19:23:23 +01:00
051f2ef225
This patch adds the PseudoCALLReg instruction which allows using an explicit register operand as the destination for the return address. GCC can successfully parse this form of the call instruction, which would be used for calls to functions which do not use ra as the return address register, such as the __riscv_save libcalls. This patch forms the first part of an implementation of -msave-restore for RISC-V. Differential Revision: https://reviews.llvm.org/D62685 llvm-svn: 364403
13 lines
875 B
ArmAsm
13 lines
875 B
ArmAsm
# RUN: not llvm-mc -triple riscv32 < %s 2>&1 | FileCheck %s
|
|
|
|
call 1234 # CHECK: :[[@LINE]]:6: error: operand must be a bare symbol name
|
|
call %pcrel_hi(1234) # CHECK: :[[@LINE]]:6: error: operand must be a bare symbol name
|
|
call %pcrel_lo(1234) # CHECK: :[[@LINE]]:6: error: operand must be a bare symbol name
|
|
call %pcrel_hi(foo) # CHECK: :[[@LINE]]:6: error: operand must be a bare symbol name
|
|
call %pcrel_lo(foo) # CHECK: :[[@LINE]]:6: error: operand must be a bare symbol name
|
|
call %hi(1234) # CHECK: :[[@LINE]]:6: error: operand must be a bare symbol name
|
|
call %lo(1234) # CHECK: :[[@LINE]]:6: error: operand must be a bare symbol name
|
|
call %hi(foo) # CHECK: :[[@LINE]]:6: error: operand must be a bare symbol name
|
|
call %lo(foo) # CHECK: :[[@LINE]]:6: error: operand must be a bare symbol name
|
|
call foo, bar # CHECK: :[[@LINE]]:6: error: operand must be a bare symbol name
|