Displaying 3 results from an estimated 3 matches for "__bswapdi2".
2018 Nov 25
3
BUGS n code generated for target i386 compiling __bswapdi3, and for target x86-64 compiling __bswapsi2()
...ng
functions:
unsigned long __bswapsi2 (unsigned long ul)
{
return (((ul) & 0xff000000ul) >> 3 * 8)
| (((ul) & 0x00ff0000ul) >> 8)
| (((ul) & 0x0000ff00ul) << 8)
| (((ul) & 0x000000fful) << 3 * 8);
}
unsigned long long __bswapdi2(unsigned long long ull)
{
return ((ull & 0xff00000000000000ull) >> 7 * 8)
| ((ull & 0x00ff000000000000ull) >> 5 * 8)
| ((ull & 0x0000ff0000000000ull) >> 3 * 8)
| ((ull & 0x000000ff00000000ull) >> 8)
| ((ull & 0x...
2018 Nov 25
3
BUGS n code generated for target i386 compiling __bswapdi3, and for target x86-64 compiling __bswapsi2()
...gt;> return (((ul) & 0xff000000ul) >> 3 * 8)
>> | (((ul) & 0x00ff0000ul) >> 8)
>> | (((ul) & 0x0000ff00ul) << 8)
>> | (((ul) & 0x000000fful) << 3 * 8);
>> }
>>
>> unsigned long long __bswapdi2(unsigned long long ull)
>> {
>> return ((ull & 0xff00000000000000ull) >> 7 * 8)
>> | ((ull & 0x00ff000000000000ull) >> 5 * 8)
>> | ((ull & 0x0000ff0000000000ull) >> 3 * 8)
>> | ((ull & 0x000000ff00000000u...
2018 Nov 25
2
BUGS n code generated for target i386 compiling __bswapdi3, and for target x86-64 compiling __bswapsi2()
...code on x86-64:
>
> mov rdi, 0123456789abcdefh ; pass (fake) argument in RDI
> ; split argument into high and low part
> mov rdx, rdi
> shr rdx, 32 ; high part in EDX
> mov eax, rdi ; low part in EAX
> ; perform __bswapdi2() as in 32-bit mode
> xchg eax, edx ; swap parts, argument now loaded
> ; like in 32-bit mode
> bswap edx
> bswap eax ; result like that in 32-bit mode
> ; load result into 64-bit register
&g...