diff --git a/VM/src/lbuiltins.cpp b/VM/src/lbuiltins.cpp index 04852e87..e5e2bac6 100644 --- a/VM/src/lbuiltins.cpp +++ b/VM/src/lbuiltins.cpp @@ -1374,7 +1374,8 @@ static int luauF_writeinteger(lua_State* L, StkId res, TValue* arg0, int nresult return -1; unsigned value; - luai_num2unsigned(value, nvalue(args + 1)); + double incoming = nvalue(args + 1); + luai_num2unsigned(value, incoming); T val = T(value); memcpy((char*)bufvalue(arg0)->data + offset, &val, sizeof(T)); diff --git a/VM/src/lnumutils.h b/VM/src/lnumutils.h index 9abe0335..38bfb322 100644 --- a/VM/src/lnumutils.h +++ b/VM/src/lnumutils.h @@ -53,9 +53,8 @@ LUAU_FASTMATH_END #if defined(_MSC_VER) && defined(_M_IX86) #define luai_num2unsigned(i, n) \ { \ - double v = (n); \ __int64 l; \ - __asm { __asm fld v __asm fistp l} \ + __asm { __asm fld n __asm fistp l} \ ; \ i = (unsigned int)l; \ }