OSDN Git Service

nvc0/ir: fix spilling predicates to registers
authorIlia Mirkin <imirkin@alum.mit.edu>
Mon, 30 May 2016 21:25:41 +0000 (17:25 -0400)
committerEmil Velikov <emil.l.velikov@gmail.com>
Thu, 2 Jun 2016 11:54:52 +0000 (12:54 +0100)
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Cc: "11.1 11.2 12.0" <mesa-stable@lists.freedesktop.org>
(cherry picked from commit 4b1a167a2bce936beabd03ffc313a63d8deeed09)

src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nvc0.cpp

index 9159e34..bc94285 100644 (file)
@@ -1985,6 +1985,10 @@ CodeEmitterNVC0::emitMOV(const Instruction *i)
          opc |= i->lanes << 5;
 
       emitForm_B(i, opc);
+
+      // Explicitly emit the predicate source as emitForm_B skips it.
+      if (i->src(0).getFile() == FILE_PREDICATE)
+         srcId(i->src(0), 20);
    } else {
       uint32_t imm;