aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lj_ccallback.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/lj_ccallback.c b/src/lj_ccallback.c
index 3ddb7ca5c..2fa8e7ce0 100644
--- a/src/lj_ccallback.c
+++ b/src/lj_ccallback.c
@@ -519,6 +519,10 @@ static void callback_conv_result(CTState *cts, lua_State *L, TValue *o)
519#if LJ_TARGET_X86 519#if LJ_TARGET_X86
520 if (ctype_isfp(ctr->info)) 520 if (ctype_isfp(ctr->info))
521 cts->cb.gpr[2] = ctr->size == sizeof(float) ? 1 : 2; 521 cts->cb.gpr[2] = ctr->size == sizeof(float) ? 1 : 2;
522#elif LJ_TARGET_X64
523 /* Always zero-extend results to 64 bits. */
524 if (ctr->size <= 4 && ctype_isinteger_or_bool(ctr->info))
525 *(uint64_t *)dp = (uint64_t)*(uint32_t *)dp;
522#endif 526#endif
523 } 527 }
524} 528}