From c54dea66fd86f6000e334c703ea4890179c39c81 Mon Sep 17 00:00:00 2001 From: Luca Barbieri Date: Thu, 19 Aug 2010 10:07:58 +0200 Subject: translate_sse: try to fix Win64 Not sure whether it works now (it is still disabled). --- src/gallium/auxiliary/rtasm/rtasm_x86sse.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/gallium/auxiliary/rtasm') diff --git a/src/gallium/auxiliary/rtasm/rtasm_x86sse.c b/src/gallium/auxiliary/rtasm/rtasm_x86sse.c index 0fe6ebfcb4..75b0f6a68e 100644 --- a/src/gallium/auxiliary/rtasm/rtasm_x86sse.c +++ b/src/gallium/auxiliary/rtasm/rtasm_x86sse.c @@ -2105,8 +2105,9 @@ struct x86_reg x86_fn_arg( struct x86_function *p, case 4: return x86_make_reg(file_REG32, reg_R9); default: + /* Win64 allocates stack slots as if it pushed the first 4 arguments too */ return x86_make_disp(x86_make_reg(file_REG32, reg_SP), - p->stack_offset + (arg - 4) * 8); /* ??? */ + p->stack_offset + arg * 8); } case X86_64_STD_ABI: switch(arg) -- cgit v1.2.3