summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallium/auxiliary/rtasm/rtasm_x86sse.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/gallium/auxiliary/rtasm/rtasm_x86sse.c b/src/gallium/auxiliary/rtasm/rtasm_x86sse.c
index 0fe6ebfcb45..75b0f6a68ea 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)