Browse Source

one more x64 linux fix

ncannasse 7 years ago
parent
commit
abb40212d7
1 changed files with 3 additions and 1 deletions
  1. 3 1
      src/jit.c

+ 3 - 1
src/jit.c

@@ -1370,7 +1370,9 @@ static void set_native_arg( jit_ctx *ctx, preg *r ) {
 static void set_native_arg_fpu( jit_ctx *ctx, preg *r, bool isf32 ) {
 #	ifdef HL_64
 	if( r->kind == RCPU ) ASSERT(0);
-	preg *target = REG_AT(XMM(IS_WINCALL64 ? --ctx->nativeArgsCount : ctx->nativeArgsCount));
+	// can only be used if last argument !!
+	ctx->nativeArgsCount--;
+	preg *target = REG_AT(XMM(IS_WINCALL64 ? ctx->nativeArgsCount : 0));
 	if( target != r ) {
 		op64(ctx, isf32 ? MOVSS : MOVSD, target, r);
 		scratch(target);