[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: lua_number2int in bitwise operators Lua 5.2 work 3 (MSVC)
- From: Luiz Henrique de Figueiredo <lhf@...>
- Date: Fri, 28 May 2010 07:55:40 -0300
> On MSVC compiler this construction
>
> #define lua_number2int(i,n) __asm {__asm fld n __asm fistp i}
>
> Example:
>
> bit.band(0xFF000000, 0x00FFFFFF)
>
> while debug after getting from stack, the first value is 0x80000000, second
> 0xFFFFFF
For the bit library lbitlib.c, the relevant macro is lua_uint2number,
which is called at getuintarg:
#define lua_number2uint(i,n) \
{__int64 l; __asm {__asm fld n __asm fistp l} i = (unsigned int)l;}
You may want to add this line just before returning from getuintarg if
you want to debug it further:
printf("getuintarg: x=%f\tr=%ul %0x\n",x,r,r);