Mercurial > hg > CbC > CbC_llvm
comparison llvm/docs/AMDGPU/gfx10_msg.rst @ 150:1d019706d866
LLVM10
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 15:10:13 +0900 |
parents | |
children | c4bab56944e8 |
comparison
equal
deleted
inserted
replaced
147:c2174574ed3a | 150:1d019706d866 |
---|---|
1 .. | |
2 ************************************************** | |
3 * * | |
4 * Automatically generated file, do not edit! * | |
5 * * | |
6 ************************************************** | |
7 | |
8 .. _amdgpu_synid10_msg: | |
9 | |
10 msg | |
11 =========================== | |
12 | |
13 A 16-bit message code. The bits of this operand have the following meaning: | |
14 | |
15 ============ =============================== =============== | |
16 Bits Description Value Range | |
17 ============ =============================== =============== | |
18 3:0 Message *type*. 0..15 | |
19 6:4 Optional *operation*. 0..7 | |
20 7:7 Unused. \- | |
21 9:8 Optional *stream*. 0..3 | |
22 15:10 Unused. \- | |
23 ============ =============================== =============== | |
24 | |
25 This operand may be specified as one of the following: | |
26 | |
27 * An :ref:`integer_number<amdgpu_synid_integer_number>` or an :ref:`absolute_expression<amdgpu_synid_absolute_expression>`. The value must be in the range 0..0xFFFF. | |
28 * A *sendmsg* value described below. | |
29 | |
30 ==================================== ==================================================== | |
31 Sendmsg Value Syntax Description | |
32 ==================================== ==================================================== | |
33 sendmsg(<*type*>) A message identified by its *type*. | |
34 sendmsg(<*type*>,<*op*>) A message identified by its *type* and *operation*. | |
35 sendmsg(<*type*>,<*op*>,<*stream*>) A message identified by its *type* and *operation* | |
36 with a stream *id*. | |
37 ==================================== ==================================================== | |
38 | |
39 *Type* may be specified using message *name* or message *id*. | |
40 | |
41 *Op* may be specified using operation *name* or operation *id*. | |
42 | |
43 Stream *id* is an integer in the range 0..3. | |
44 | |
45 Numeric values may be specified as positive :ref:`integer numbers<amdgpu_synid_integer_number>` | |
46 or :ref:`absolute expressions<amdgpu_synid_absolute_expression>`. | |
47 | |
48 Each message type supports specific operations: | |
49 | |
50 ================= ========== ============================== ============ ========== | |
51 Message name Message Id Supported Operations Operation Id Stream Id | |
52 ================= ========== ============================== ============ ========== | |
53 MSG_INTERRUPT 1 \- \- \- | |
54 MSG_GS 2 GS_OP_CUT 1 Optional | |
55 \ GS_OP_EMIT 2 Optional | |
56 \ GS_OP_EMIT_CUT 3 Optional | |
57 MSG_GS_DONE 3 GS_OP_NOP 0 \- | |
58 \ GS_OP_CUT 1 Optional | |
59 \ GS_OP_EMIT 2 Optional | |
60 \ GS_OP_EMIT_CUT 3 Optional | |
61 MSG_GS_ALLOC_REQ 9 \- \- \- | |
62 MSG_GET_DOORBELL 10 \- \- \- | |
63 MSG_SYSMSG 15 SYSMSG_OP_ECC_ERR_INTERRUPT 1 \- | |
64 \ SYSMSG_OP_REG_RD 2 \- | |
65 \ SYSMSG_OP_HOST_TRAP_ACK 3 \- | |
66 \ SYSMSG_OP_TTRACE_PC 4 \- | |
67 ================= ========== ============================== ============ ========== | |
68 | |
69 *Sendmsg* arguments are validated depending on how *type* value is specified: | |
70 | |
71 * If message *type* is specified by name, arguments values must satisfy limitations detailed in the table above. | |
72 * If message *type* is specified as a number, each argument must not exceed corresponding value range (see the first table). | |
73 | |
74 Examples: | |
75 | |
76 .. parsed-literal:: | |
77 | |
78 // numeric message code | |
79 msg = 0x10 | |
80 s_sendmsg 0x12 | |
81 s_sendmsg msg + 2 | |
82 | |
83 // sendmsg with strict arguments validation | |
84 s_sendmsg sendmsg(MSG_INTERRUPT) | |
85 s_sendmsg sendmsg(MSG_GS, GS_OP_EMIT) | |
86 s_sendmsg sendmsg(MSG_GS, 2) | |
87 s_sendmsg sendmsg(MSG_GS_DONE, GS_OP_EMIT_CUT, 1) | |
88 s_sendmsg sendmsg(MSG_SYSMSG, SYSMSG_OP_TTRACE_PC) | |
89 s_sendmsg sendmsg(MSG_GET_DOORBELL) | |
90 | |
91 // sendmsg with validation of value range only | |
92 msg = 2 | |
93 op = 3 | |
94 stream = 1 | |
95 s_sendmsg sendmsg(msg, op, stream) | |
96 s_sendmsg sendmsg(2, GS_OP_CUT) | |
97 |