llvm.org GIT mirror llvm / e201b95
[AMDGPU][MC][GFX9][GFX10] Added support of GET_DOORBELL message Reviewers: artem.tamazov, arsenm Differential Revision: https://reviews.llvm.org/D64729 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@366071 91177308-0d34-0410-b5e6-96231b3b80d8 Dmitry Preobrazhensky a month ago
7 changed file(s) with 42 addition(s) and 5 deletion(s). Raw diff Collapse all Expand all
5252 \ GS_OP_EMIT 2 Optional
5353 \ GS_OP_EMIT_CUT 3 Optional
5454 MSG_GS_ALLOC_REQ 9 \- \- \-
55 MSG_GET_DOORBELL 10 \- \- \-
5556 MSG_SYSMSG 15 SYSMSG_OP_ECC_ERR_INTERRUPT 1 \-
5657 \ SYSMSG_OP_REG_RD 2 \-
5758 \ SYSMSG_OP_HOST_TRAP_ACK 3 \-
6465
6566 s_sendmsg 0x12
6667 s_sendmsg sendmsg(MSG_INTERRUPT)
68 s_sendmsg sendmsg(MSG_GET_DOORBELL)
6769 s_sendmsg sendmsg(2, GS_OP_CUT)
6870 s_sendmsg sendmsg(MSG_GS, GS_OP_EMIT)
6971 s_sendmsg sendmsg(MSG_GS, 2)
5252 \ GS_OP_EMIT 2 Optional
5353 \ GS_OP_EMIT_CUT 3 Optional
5454 MSG_GS_ALLOC_REQ 9 \- \- \-
55 MSG_GET_DOORBELL 10 \- \- \-
5556 MSG_SYSMSG 15 SYSMSG_OP_ECC_ERR_INTERRUPT 1 \-
5657 \ SYSMSG_OP_REG_RD 2 \-
5758 \ SYSMSG_OP_HOST_TRAP_ACK 3 \-
6465
6566 s_sendmsg 0x12
6667 s_sendmsg sendmsg(MSG_INTERRUPT)
68 s_sendmsg sendmsg(MSG_GET_DOORBELL)
6769 s_sendmsg sendmsg(2, GS_OP_CUT)
6870 s_sendmsg sendmsg(MSG_GS, GS_OP_EMIT)
6971 s_sendmsg sendmsg(MSG_GS, 2)
262262 ID_GS,
263263 ID_GS_DONE,
264264 ID_GS_ALLOC_REQ = 9,
265 ID_GET_DOORBELL = 10,
265266 ID_SYSMSG = 15,
266267 ID_GAPS_LAST_, // Indicate that sequence has gaps.
267268 ID_GAPS_FIRST_ = ID_INTERRUPT,
2222 nullptr,
2323 nullptr,
2424 "MSG_GS_ALLOC_REQ",
25 nullptr,
25 "MSG_GET_DOORBELL",
2626 nullptr,
2727 nullptr,
2828 nullptr,
730730 }
731731
732732 bool isValidMsgId(int64_t MsgId, const MCSubtargetInfo &STI, bool Strict) {
733 return Strict ?
734 isValidMsgId(MsgId) && (MsgId != ID_GS_ALLOC_REQ || isGFX9(STI) || isGFX10(STI)) :
735 0 <= MsgId && isUInt(MsgId);
733 if (Strict) {
734 if (MsgId == ID_GS_ALLOC_REQ || MsgId == ID_GET_DOORBELL)
735 return isGFX9(STI) || isGFX10(STI);
736 else
737 return isValidMsgId(MsgId);
738 } else {
739 return 0 <= MsgId && isUInt(MsgId);
740 }
736741 }
737742
738743 StringRef getMsgName(int64_t MsgId) {
0 // RUN: llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding %s | FileCheck --check-prefix=GFX10 %s
1
2 //===----------------------------------------------------------------------===//
3 // s_sendmsg
4 //===----------------------------------------------------------------------===//
5
6 s_sendmsg 9
7 // GFX10: s_sendmsg sendmsg(MSG_GS_ALLOC_REQ) ; encoding: [0x09,0x00,0x90,0xbf]
8
9 s_sendmsg sendmsg(MSG_GS_ALLOC_REQ)
10 // GFX10: s_sendmsg sendmsg(MSG_GS_ALLOC_REQ) ; encoding: [0x09,0x00,0x90,0xbf]
11
12 s_sendmsg 10
13 // GFX10: s_sendmsg sendmsg(MSG_GET_DOORBELL) ; encoding: [0x0a,0x00,0x90,0xbf]
14
15 s_sendmsg sendmsg(MSG_GET_DOORBELL)
16 // GFX10: s_sendmsg sendmsg(MSG_GET_DOORBELL) ; encoding: [0x0a,0x00,0x90,0xbf]
6969 s_waitcnt vmcnt(62) expcnt(6) lgkmcnt(14)
7070 // GFX9: s_waitcnt vmcnt(62) expcnt(6) lgkmcnt(14) ; encoding: [0x6e,0xce,0x8c,0xbf]
7171
72 //===----------------------------------------------------------------------===//
73 // s_sendmsg
74 //===----------------------------------------------------------------------===//
75
7276 s_sendmsg 9
73 // GCN: s_sendmsg sendmsg(MSG_GS_ALLOC_REQ) ; encoding: [0x09,0x00,0x90,0xbf]
77 // GFX9: s_sendmsg sendmsg(MSG_GS_ALLOC_REQ) ; encoding: [0x09,0x00,0x90,0xbf]
7478
7579 s_sendmsg sendmsg(MSG_GS_ALLOC_REQ)
7680 // GFX9: s_sendmsg sendmsg(MSG_GS_ALLOC_REQ) ; encoding: [0x09,0x00,0x90,0xbf]
81
82 s_sendmsg 10
83 // GFX9: s_sendmsg sendmsg(MSG_GET_DOORBELL) ; encoding: [0x0a,0x00,0x90,0xbf]
84
85 s_sendmsg sendmsg(MSG_GET_DOORBELL)
86 // GFX9: s_sendmsg sendmsg(MSG_GET_DOORBELL) ; encoding: [0x0a,0x00,0x90,0xbf]