translate_sse: try to fix Win64
authorLuca Barbieri <luca@luca-barbieri.com>
Thu, 19 Aug 2010 08:07:58 +0000 (10:07 +0200)
committerLuca Barbieri <luca@luca-barbieri.com>
Thu, 19 Aug 2010 08:08:57 +0000 (10:08 +0200)
Not sure whether it works now (it is still disabled).

src/gallium/auxiliary/rtasm/rtasm_x86sse.c

index 0fe6ebf..75b0f6a 100644 (file)
@@ -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)