diff options
author | Xiang, Haihao <haihao.xiang@intel.com> | 2013-02-22 11:14:09 +0800 |
---|---|---|
committer | Ben Widawsky <benjamin.widawsky@intel.com> | 2013-11-06 09:39:41 -0800 |
commit | bf003ea63434e6acc91b7c0feec6aa2084983a16 (patch) | |
tree | a7ff4d1519be84ab62f1842fefe21328d5cd8a6a /assembler | |
parent | 01c9654a65460eb6058b9060894a6e0e08ac2c80 (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.h | 9 | ||||
-rw-r--r-- | assembler/gram.y | 32 |
2 files changed, 29 insertions, 12 deletions
diff --git a/assembler/gen8_instruction.h b/assembler/gen8_instruction.h index e482522bc..493187ce5 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 c46c92277..94fff79d4 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 |