--- Comment #3 from xinping dot huang at gmail dot com 2010-05-24 13:53
---
Subject: Re: Strange behavior on bit fields structures
Sorry I made a mistake here, it works on 32bit mode, but failed on the
64bit mode.
Wesley
2010/5/24 xinping dot huang at gmail dot com :
>
>
> --- Comment #2 from xinping dot huang at gmail dot com 2010-05-24 13:51
> ---
> Subject: Re: Strange behavior on bit fields sructures.
>
> My gcc 4.4.4 generate the correct binary and get the correct result
> even with -O3 option.
>
> Wesley
>
> 2010/5/24 dennis at conus dot info :
>>
>>
>> --- Comment #1 from dennis at conus dot info 2010-05-24 13:30 ---
>> The code 4.4.1 x86 generating (with -O3 option) for bswap() function I
>> mentioned earlier is strange too:
>>
>>
>> ; bswap(unsigned int)
>> public _Z5bswapj
>> _Z5bswapj proc near
>>
>> var_4 = dword ptr -4
>> arg_0 = dword ptr 8
>>
>> push ebp
>> mov ebp, esp
>> sub esp, 10h
>> mov eax, [ebp+arg_0]
>> mov edx, eax
>> sar edx, 18h
>> mov byte ptr [ebp+var_4], dl
>> mov edx, eax
>> shr edx, 10h
>> mov byte ptr [ebp+var_4+1], dl
>> movsx edx, ah
>> mov byte ptr [ebp+var_4+3], al
>> mov eax, [ebp+var_4] ; returning var_4
>> mov byte ptr [ebp+var_4+2], dl ; set last byte to var_4
>> leave
>> retn
>> _Z5bswapj endp
>>
>>
>> --
>>
>>
>> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44260
>>
>>
>
>
> --
>
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44260
>
>
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44260