summaryrefslogtreecommitdiff
path: root/assembler
diff options
context:
space:
mode:
authorXiang, Haihao <haihao.xiang@intel.com>2013-02-22 11:14:09 +0800
committerBen Widawsky <benjamin.widawsky@intel.com>2013-11-06 09:39:41 -0800
commitbf003ea63434e6acc91b7c0feec6aa2084983a16 (patch)
treea7ff4d1519be84ab62f1842fefe21328d5cd8a6a /assembler
parent01c9654a65460eb6058b9060894a6e0e08ac2c80 (diff)
assembler/bdw: Thread Spawn message
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com> Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Diffstat (limited to 'assembler')
-rw-r--r--assembler/gen8_instruction.h9
-rw-r--r--assembler/gram.y32
2 files changed, 29 insertions, 12 deletions
diff --git a/assembler/gen8_instruction.h b/assembler/gen8_instruction.h
index e482522b..493187ce 100644
--- a/assembler/gen8_instruction.h
+++ b/assembler/gen8_instruction.h
@@ -199,6 +199,15 @@ F(dp_message_control, 109, 104)
F(dp_binding_table_index, 103, 96)
/** @} */
+/**
+ * Thread Spawn message function control bits:
+ * @ {
+ */
+F(ts_resource_select, 100, 100)
+F(ts_request_type, 97, 97)
+F(ts_opcode, 96, 96)
+/** @} */
+
#undef F
/**
diff --git a/assembler/gram.y b/assembler/gram.y
index c46c9227..94fff79d 100644
--- a/assembler/gram.y
+++ b/assembler/gram.y
@@ -1749,21 +1749,29 @@ msgtarget: NULL_TOKEN
| THREAD_SPAWNER LPAREN INTEGER COMMA INTEGER COMMA
INTEGER RPAREN
{
- GEN(&$$)->bits3.generic.msg_target =
- BRW_SFID_THREAD_SPAWNER;
- if (IS_GENp(5)) {
- GEN(&$$)->bits2.send_gen5.sfid =
- BRW_SFID_THREAD_SPAWNER;
- GEN(&$$)->bits3.generic_gen5.header_present = 0;
- GEN(&$$)->bits3.thread_spawner_gen5.opcode = $3;
- GEN(&$$)->bits3.thread_spawner_gen5.requester_type = $5;
- GEN(&$$)->bits3.thread_spawner_gen5.resource_select = $7;
+ if (IS_GENp(8)) {
+ gen8_set_sfid(GEN8(&$$), BRW_SFID_THREAD_SPAWNER);
+ gen8_set_header_present(GEN8(&$$), 0); /* Must be 0 */
+ gen8_set_ts_opcode(GEN8(&$$), $3);
+ gen8_set_ts_request_type(GEN8(&$$), $5);
+ gen8_set_ts_resource_select(GEN8(&$$), $7);
} else {
GEN(&$$)->bits3.generic.msg_target =
BRW_SFID_THREAD_SPAWNER;
- GEN(&$$)->bits3.thread_spawner.opcode = $3;
- GEN(&$$)->bits3.thread_spawner.requester_type = $5;
- GEN(&$$)->bits3.thread_spawner.resource_select = $7;
+ if (IS_GENp(5)) {
+ GEN(&$$)->bits2.send_gen5.sfid =
+ BRW_SFID_THREAD_SPAWNER;
+ GEN(&$$)->bits3.generic_gen5.header_present = 0;
+ GEN(&$$)->bits3.thread_spawner_gen5.opcode = $3;
+ GEN(&$$)->bits3.thread_spawner_gen5.requester_type = $5;
+ GEN(&$$)->bits3.thread_spawner_gen5.resource_select = $7;
+ } else {
+ GEN(&$$)->bits3.generic.msg_target =
+ BRW_SFID_THREAD_SPAWNER;
+ GEN(&$$)->bits3.thread_spawner.opcode = $3;
+ GEN(&$$)->bits3.thread_spawner.requester_type = $5;
+ GEN(&$$)->bits3.thread_spawner.resource_select = $7;
+ }
}
}
| VME LPAREN INTEGER COMMA INTEGER COMMA INTEGER COMMA INTEGER RPAREN