i965: add some register number assertions
authorBrian Paul <brianp@vmware.com>
Fri, 13 Mar 2009 15:17:08 +0000 (09:17 -0600)
committerBrian Paul <brianp@vmware.com>
Fri, 13 Mar 2009 15:23:43 +0000 (09:23 -0600)
Haven't seen failures yet, but if/when there are, more investigation will
be done.

src/mesa/drivers/dri/i965/brw_eu_emit.c

index bac7135bab5b1543424958da8b2c0e004d393f73..6dce1ca48e8e524f8cc30fc00a8ba444843c9cd5 100644 (file)
@@ -55,6 +55,9 @@ static void guess_execution_size( struct brw_instruction *insn,
 static void brw_set_dest( struct brw_instruction *insn,
                          struct brw_reg dest )
 {
+   if (dest.type != BRW_ARCHITECTURE_REGISTER_FILE)
+      assert(dest.nr < 128);
+
    insn->bits1.da1.dest_reg_file = dest.file;
    insn->bits1.da1.dest_reg_type = dest.type;
    insn->bits1.da1.dest_address_mode = dest.address_mode;
@@ -100,6 +103,9 @@ static void brw_set_src0( struct brw_instruction *insn,
 {
    assert(reg.file != BRW_MESSAGE_REGISTER_FILE);
 
+   if (reg.type != BRW_ARCHITECTURE_REGISTER_FILE)
+      assert(reg.nr < 128);
+
    insn->bits1.da1.src0_reg_file = reg.file;
    insn->bits1.da1.src0_reg_type = reg.type;
    insn->bits2.da1.src0_abs = reg.abs;
@@ -173,6 +179,8 @@ void brw_set_src1( struct brw_instruction *insn,
 {
    assert(reg.file != BRW_MESSAGE_REGISTER_FILE);
 
+   assert(reg.nr < 128);
+
    insn->bits1.da1.src1_reg_file = reg.file;
    insn->bits1.da1.src1_reg_type = reg.type;
    insn->bits3.da1.src1_abs = reg.abs;