Port-amd64 archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: FLT_ROUNDS failures ... gcc/binutils regression ?
In article <20110929171342.GB24332%lynche.sis.pasteur.fr@localhost>,
Nicolas Joly <njoly%pasteur.fr@localhost> wrote:
>On Tue, Sep 27, 2011 at 02:39:40PM -0700, Matt Thomas wrote:
>[...]
>> you could recode it to extract two bits from 0x78 (01.11.10.00) which
>> avoid a memory reference. Something like:
>>
>> fnstcw -4(%rsp)
>> movl -4(%rsp), %ecx
>> shrl $9, %ecx
>> andl $6, %ecx
>> movl $120, %eax
>> sarl %cl, %eax
>> andl $3, %eax
>> ret
>
>It works, but with the inverted bits sequence :
>
> 00.10.11.01 = 0x2d = 45
>
Or just:
fnstcw -4(%rsp)
movl -4(%rsp), %eax
shrl $10, %eax
andl $3, %eax
xorl $1, %eax /* map 0,1,2,3 -> 1,0,3,2 */
ret
Which is the version I committed.
christos
Home |
Main Index |
Thread Index |
Old Index