i965/vs: Handle destinations in the MRF file.
authorEric Anholt <eric@anholt.net>
Tue, 6 Sep 2011 19:29:15 +0000 (12:29 -0700)
committerEric Anholt <eric@anholt.net>
Tue, 20 Sep 2011 18:28:56 +0000 (11:28 -0700)
We've been referencing MRFs through the HW_REG file so far, but that
makes it harder to handle compute-to-MRF and similar optimizations.

src/mesa/drivers/dri/i965/brw_vec4_emit.cpp

index 7031d2a82da5c265870e747c0275963ca230f2e7..15f2458a88a8f904389ae4af6daf8cd955b50083 100644 (file)
@@ -165,6 +165,12 @@ vec4_instruction::get_dst(void)
       brw_reg.dw1.bits.writemask = dst.writemask;
       break;
 
+   case MRF:
+      brw_reg = brw_message_reg(dst.reg + dst.reg_offset);
+      brw_reg = retype(brw_reg, dst.type);
+      brw_reg.dw1.bits.writemask = dst.writemask;
+      break;
+
    case HW_REG:
       brw_reg = dst.fixed_hw_reg;
       break;