diff options
author | Xiang, Haihao <haihao.xiang@intel.com> | 2013-02-22 11:14:07 +0800 |
---|---|---|
committer | Ben Widawsky <benjamin.widawsky@intel.com> | 2013-11-06 09:39:41 -0800 |
commit | 9d0287c252cb634db6edef990192cf77d2e120e6 (patch) | |
tree | ab0571b3fb108ad9e02e9071a89ff34fb22417c5 /assembler | |
parent | 216163b44d2285705d1af1db405be94d69a27fef (diff) |
assembler/bdw: Set thread switch for multiple branch instructions
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/gram.y | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/assembler/gram.y b/assembler/gram.y index f8483d3d2..5659e3173 100644 --- a/assembler/gram.y +++ b/assembler/gram.y @@ -940,7 +940,10 @@ multibranchinstruction: memset(&$$, 0, sizeof($$)); set_instruction_predicate(&$$, &$1); set_instruction_opcode(&$$, $2); - GEN(&$$)->header.thread_control |= BRW_THREAD_SWITCH; + if (IS_GENp(8)) + gen8_set_thread_control(GEN8(&$$), gen8_thread_control(GEN8(&$$)) | BRW_THREAD_SWITCH); + else + GEN(&$$)->header.thread_control |= BRW_THREAD_SWITCH; $$.reloc.first_reloc_target = $4.reloc_target; $$.reloc.first_reloc_offset = $4.imm32; dst_null_reg.width = $3; @@ -952,7 +955,10 @@ multibranchinstruction: memset(&$$, 0, sizeof($$)); set_instruction_predicate(&$$, &$1); set_instruction_opcode(&$$, $2); - GEN(&$$)->header.thread_control |= BRW_THREAD_SWITCH; + if (IS_GENp(8)) + gen8_set_thread_control(GEN8(&$$), gen8_thread_control(GEN8(&$$)) | BRW_THREAD_SWITCH); + else + GEN(&$$)->header.thread_control |= BRW_THREAD_SWITCH; $$.reloc.first_reloc_target = $4.reloc_target; $$.reloc.first_reloc_offset = $4.imm32; $$.reloc.second_reloc_target = $5.reloc_target; |