diff options
author | Keith Whitwell <keith@tungstengraphics.com> | 2008-05-01 15:27:53 +0100 |
---|---|---|
committer | Keith Whitwell <keith@tungstengraphics.com> | 2008-05-01 15:37:30 +0100 |
commit | 47aa416821b69d3afa33c79ec8cb8499688a0e8e (patch) | |
tree | 1f874c87203fcdf4db75478c064255e3a61e491a /src/gallium/auxiliary/tgsi/exec/tgsi_sse2.c | |
parent | 7810e7f623a47978cdd1a167cc9e6b743d56d949 (diff) |
tgsi: use EBX everywhere, be sure to push/pop it
Diffstat (limited to 'src/gallium/auxiliary/tgsi/exec/tgsi_sse2.c')
-rwxr-xr-x | src/gallium/auxiliary/tgsi/exec/tgsi_sse2.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/gallium/auxiliary/tgsi/exec/tgsi_sse2.c b/src/gallium/auxiliary/tgsi/exec/tgsi_sse2.c index 5e133a9663..06df3dbb05 100755 --- a/src/gallium/auxiliary/tgsi/exec/tgsi_sse2.c +++ b/src/gallium/auxiliary/tgsi/exec/tgsi_sse2.c @@ -103,15 +103,9 @@ get_output_base( void ) static struct x86_reg get_temp_base( void ) { -#ifdef WIN32 return x86_make_reg( file_REG32, reg_BX ); -#else - return x86_make_reg( - file_REG32, - reg_SI ); -#endif } static struct x86_reg @@ -2177,12 +2171,16 @@ tgsi_emit_sse2( tgsi_parse_init( &parse, tokens ); - /* Can't just use EDI without save/restoring it: + /* Can't just use EDI, EBX without save/restoring them: */ x86_push( func, get_immediate_base() ); + x86_push( + func, + get_temp_base() ); + /* * Different function args for vertex/fragment shaders: @@ -2309,10 +2307,14 @@ tgsi_emit_sse2( soa_to_aos( func, 9, 2, 10, 11 ); } - /* Can't just use EDI without save/restoring it: + /* Can't just use EBX, EDI without save/restoring them: */ x86_pop( func, + get_temp_base() ); + + x86_pop( + func, get_immediate_base() ); #ifdef WIN32 |