Mesa (master): nvc0/ir: add missing emission of locked load predicate

Samuel Pitoiset hakzsam at kemper.freedesktop.org
Mon Feb 22 20:30:43 UTC 2016


Module: Mesa
Branch: master
Commit: 84b9b8f0a395a26984980bb465b06ba08f55a1c6
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=84b9b8f0a395a26984980bb465b06ba08f55a1c6

Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date:   Mon Feb 22 21:11:33 2016 +0100

nvc0/ir: add missing emission of locked load predicate

Like unlocked store on shared memory, locked store can fail and the
second dest which is a predicate must be emitted.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>
Cc: mesa-stable at lists.freedesktop.org

---

 src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nvc0.cpp | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nvc0.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nvc0.cpp
index e89b129..0068da5 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nvc0.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nvc0.cpp
@@ -1852,6 +1852,13 @@ CodeEmitterNVC0::emitLOAD(const Instruction *i)
    }
    code[1] = opc;
 
+   if (i->src(0).getFile() == FILE_MEMORY_SHARED) {
+      if (i->subOp == NV50_IR_SUBOP_LOAD_LOCKED) {
+         assert(i->defExists(1));
+         defId(i->def(1), 32 + 18);
+      }
+   }
+
    defId(i->def(0), 14);
 
    setAddressByFile(i->src(0));




More information about the mesa-commit mailing list