tgsi: fix regression in indexed const lookups
authorKeith Whitwell <keithw@vmware.com>
Mon, 20 Jul 2009 18:28:34 +0000 (19:28 +0100)
committerKeith Whitwell <keithw@vmware.com>
Mon, 20 Jul 2009 18:32:28 +0000 (19:32 +0100)
This function was calling get_input_base() and get_output_base() to
get the names of a couple of register to use as temps.  Those
functions no longer return registers, so adjust it to get the
registers elsewhere.

This change doesn't address the issue that it's a fairly poor way to
grab a register name by calling a function with an apparently
unrelated meaning.

src/gallium/auxiliary/tgsi/tgsi_sse2.c

index df49638d512ab3db9a4b39abc43e43c07a3e9291..a4b86aba98660fe24281811b597487fc63ec0981 100644 (file)
@@ -269,12 +269,14 @@ emit_const(
       /* 'vec' is the offset from the address register's value.
        * We're loading CONST[ADDR+vec] into an xmm register.
        */
-      struct x86_reg r0 = get_input_base();
-      struct x86_reg r1 = get_output_base();
+      struct x86_reg r0 = get_immediate_base();
+      struct x86_reg r1 = get_coef_base();
       uint i;
 
       assert( indirectFile == TGSI_FILE_ADDRESS );
       assert( indirectIndex == 0 );
+      assert( r0.mod == mod_REG );
+      assert( r1.mod == mod_REG );
 
       x86_push( func, r0 );
       x86_push( func, r1 );