summaryrefslogtreecommitdiff
path: root/src/amd/compiler/aco_insert_NOPs.cpp
diff options
context:
space:
mode:
authorTimur Kristóf <timur.kristof@gmail.com>2020-01-24 15:17:44 +0100
committerMarge Bot <eric+marge@anholt.net>2020-01-24 16:21:08 +0000
commitc787b8d2a16d5e2950f209b1fcbec6e6c0388845 (patch)
tree701457f58ea4d208b2fac3d246add1dfc90fbb7d /src/amd/compiler/aco_insert_NOPs.cpp
parent8a32f57fff56b3b94f1b5589feba38016f39427c (diff)
downloadmesa-c787b8d2a16d5e2950f209b1fcbec6e6c0388845.tar.gz
aco/gfx10: Fix VcmpxExecWARHazard mitigation.
The SOPP instruction shouldn't have a definition, and its block should be set to -1 in order to prevent it from being recognized as a branch. Also fix a typo in the readme. Fixes: d6dfce02d074d615a3b88a3fccd8ee8c7e13c010 Signed-off-by: Timur Kristóf <timur.kristof@gmail.com> Reviewed-by: Rhys Perry <pendingchaos02@gmail.com> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3552> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3552>
Diffstat (limited to 'src/amd/compiler/aco_insert_NOPs.cpp')
-rw-r--r--src/amd/compiler/aco_insert_NOPs.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/amd/compiler/aco_insert_NOPs.cpp b/src/amd/compiler/aco_insert_NOPs.cpp
index b9eaaed96db..689d5e25acc 100644
--- a/src/amd/compiler/aco_insert_NOPs.cpp
+++ b/src/amd/compiler/aco_insert_NOPs.cpp
@@ -491,9 +491,9 @@ void handle_instruction_gfx10(Program *program, NOP_ctx_gfx10 &ctx, aco_ptr<Inst
ctx.has_nonVALU_exec_read = false;
/* Insert s_waitcnt_depctr instruction with magic imm to mitigate the problem */
- aco_ptr<SOPP_instruction> depctr{create_instruction<SOPP_instruction>(aco_opcode::s_waitcnt_depctr, Format::SOPP, 0, 1)};
+ aco_ptr<SOPP_instruction> depctr{create_instruction<SOPP_instruction>(aco_opcode::s_waitcnt_depctr, Format::SOPP, 0, 0)};
depctr->imm = 0xfffe;
- depctr->definitions[0] = Definition(sgpr_null, s1);
+ depctr->block = -1;
new_instructions.emplace_back(std::move(depctr));
} else if (instr_writes_sgpr(instr)) {
/* Any VALU instruction that writes an SGPR mitigates the problem */