From: Andrzej Trznadel Date: Mon, 17 Mar 2008 22:54:24 +0000 (-0700) Subject: [965] Fix fp temp reg release code to not usually release all temps. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3105bc1d885ea8ce083d2be85cbeac46d4d873a1;p=mesa.git [965] Fix fp temp reg release code to not usually release all temps. Also, use wrapped ffs() instead of native. --- diff --git a/src/mesa/drivers/dri/i965/brw_wm_fp.c b/src/mesa/drivers/dri/i965/brw_wm_fp.c index 682b16d74dd..621106f14dc 100644 --- a/src/mesa/drivers/dri/i965/brw_wm_fp.c +++ b/src/mesa/drivers/dri/i965/brw_wm_fp.c @@ -144,7 +144,7 @@ static struct prog_dst_register dst_undef( void ) static struct prog_dst_register get_temp( struct brw_wm_compile *c ) { - int bit = ffs( ~c->fp_temp ); + int bit = _mesa_ffs( ~c->fp_temp ); if (!bit) { _mesa_printf("%s: out of temporaries\n", __FILE__); @@ -158,7 +158,7 @@ static struct prog_dst_register get_temp( struct brw_wm_compile *c ) static void release_temp( struct brw_wm_compile *c, struct prog_dst_register temp ) { - c->fp_temp &= ~1<<(temp.Index + 1 - FIRST_INTERNAL_TEMP); + c->fp_temp &= ~(1 << (temp.Index - FIRST_INTERNAL_TEMP)); }