mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-01 05:01:59 +01:00
1adac220b3
Added support for sendmsg(MSG[, OP[, STREAM_ID]]) syntax in s_sendmsg and s_sendmsghalt instructions. The syntax matches the SP3 assembler/disassembler rules. That is why implicit inputs (like M0 and EXEC) are not printed to disassembly output anymore. sendmsg(...) allows only known message types and attributes, even if literals are used instead of symbolic names. However, raw literal (without "sendmsg") still can be used, and that allows for any 16-bit value. Tests updated/added. Differential Revision: http://reviews.llvm.org/D19596 llvm-svn: 268762
76 lines
2.2 KiB
ArmAsm
76 lines
2.2 KiB
ArmAsm
// RUN: not llvm-mc -arch=amdgcn -show-encoding %s 2>&1 | FileCheck --check-prefix=GCN --check-prefix=SICI %s
|
|
// RUN: not llvm-mc -arch=amdgcn -mcpu=SI -show-encoding %s 2>&1 | FileCheck --check-prefix=GCN --check-prefix=SICI %s
|
|
// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s 2>&1 | FileCheck --check-prefix=GCN --check-prefix=VI %s
|
|
|
|
s_sendmsg sendmsg(11)
|
|
// GCN: error: invalid/unsupported code of message
|
|
|
|
s_sendmsg sendmsg(MSG_INTERRUPTX)
|
|
// GCN: error: invalid/unsupported symbolic name of message
|
|
|
|
s_sendmsg sendmsg(MSG_INTERRUPT, 0)
|
|
// GCN: error: not a valid operand
|
|
|
|
s_sendmsg sendmsg(MSG_GS)
|
|
// GCN: error: not a valid operand
|
|
|
|
s_sendmsg sendmsg(MSG_GS, GS_OP_NOP)
|
|
// GCN: error: invalid GS_OP: NOP is for GS_DONE only
|
|
|
|
s_sendmsg sendmsg(MSG_GS, GS_OP_CUT, 0, 0)
|
|
// GCN: error: not a valid operand
|
|
|
|
s_sendmsg sendmsg(MSG_GSX, GS_OP_CUT, 0)
|
|
// GCN: error: invalid/unsupported symbolic name of message
|
|
|
|
s_sendmsg sendmsg(MSG_GS, GS_OP_CUTX, 0)
|
|
// GCN: error: invalid symbolic name of GS_OP
|
|
|
|
s_sendmsg sendmsg(MSG_GS, GS_OP_CUT, 4)
|
|
// GCN: error: invalid stream id: only 2-bit values are legal
|
|
|
|
s_sendmsg sendmsg(2)
|
|
// GCN: error: not a valid operand
|
|
|
|
s_sendmsg sendmsg(2, 0)
|
|
// GCN: error: invalid GS_OP: NOP is for GS_DONE only
|
|
|
|
s_sendmsg sendmsg(2, 3, 0, 0)
|
|
// GCN: error: not a valid operand
|
|
|
|
s_sendmsg sendmsg(2, 4, 1)
|
|
// GCN: error: invalid code of GS_OP: only 2-bit values are legal
|
|
|
|
s_sendmsg sendmsg(2, 2, 4)
|
|
// GCN: error: invalid stream id: only 2-bit values are legal
|
|
|
|
s_sendmsg sendmsg(2, 2, 0, 0)
|
|
// GCN: error: not a valid operand
|
|
|
|
s_sendmsg sendmsg(MSG_GS_DONE, GS_OP_NOP, 0)
|
|
// GCN: error: not a valid operand
|
|
|
|
s_sendmsg sendmsg(15)
|
|
// GCN: error: not a valid operand
|
|
|
|
s_sendmsg sendmsg(15, 1, 0)
|
|
// GCN: error: not a valid operand
|
|
|
|
s_sendmsg sendmsg(15, 0)
|
|
// GCN: error: invalid/unsupported code of SYSMSG_OP
|
|
|
|
s_sendmsg sendmsg(15, 5)
|
|
// GCN: error: invalid/unsupported code of SYSMSG_OP
|
|
|
|
s_sendmsg sendmsg(MSG_SYSMSG)
|
|
// GCN: error: not a valid operand
|
|
|
|
s_sendmsg sendmsg(MSG_SYSMSG, SYSMSG_OP_ECC_ERR_INTERRUPT, 0)
|
|
// GCN: error: not a valid operand
|
|
|
|
s_sendmsg sendmsg(MSG_SYSMSG, 0)
|
|
// GCN: error: invalid/unsupported code of SYSMSG_OP
|
|
|
|
s_sendmsg sendmsg(MSG_SYSMSG, 5)
|
|
// GCN: error: invalid/unsupported code of SYSMSG_OP
|