summaryrefslogtreecommitdiff
path: root/src/mesa/pipe
diff options
context:
space:
mode:
authorKeith Whitwell <keith@tungstengraphics.com>2008-02-13 12:35:16 +0000
committerKeith Whitwell <keith@tungstengraphics.com>2008-02-13 12:36:32 +0000
commit8162d317d2f6f2dcc31f31c0c2d663c33dfee053 (patch)
treefca0447312e47867d8cea4d4e828b9bc58166352 /src/mesa/pipe
parenta3534a27bfc9827a12d83f7b6464af98424cf8d4 (diff)
x86: emit absolute calls, as reallocating exec mem breaks relative ones
Diffstat (limited to 'src/mesa/pipe')
-rwxr-xr-xsrc/mesa/pipe/tgsi/exec/tgsi_sse2.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/mesa/pipe/tgsi/exec/tgsi_sse2.c b/src/mesa/pipe/tgsi/exec/tgsi_sse2.c
index ecf4ca8d21..1e56e4afb6 100755
--- a/src/mesa/pipe/tgsi/exec/tgsi_sse2.c
+++ b/src/mesa/pipe/tgsi/exec/tgsi_sse2.c
@@ -328,8 +328,11 @@ emit_call(
struct x86_function *func,
void (* addr)() )
{
+ struct x86_reg ecx = x86_make_reg( file_REG32, reg_CX );
+
DUMP_I( "CALL", addr );
- x86_call( func, addr );
+ x86_mov_reg_imm( func, ecx, (unsigned long) addr );
+ x86_call( func, ecx );
}
static void