gforth
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [gforth] Strange behavior of f! etc. - fixed


From: Bernd Paysan
Subject: Re: [gforth] Strange behavior of f! etc. - fixed
Date: Mon, 13 Feb 2012 23:18:42 +0100
User-agent: KMail/4.7.2 (Linux/3.1.9-1.4-desktop; KDE/4.7.2; x86_64; ; )

Am Montag, 13. Februar 2012, 13:46:10 schrieb Dennis Ruffer:
> I have confirmed your results back through 0.7.0-20100915, but at
> 0.7.0-20100807 it appears to have been worse:
> 
> # gforth-fast-0.7.0-20100807.exe
> Gforth 0.7.0-20100807, Copyright (C) 1995-2009 Free Software Foundation,
> Inc.
> Gforth comes with ABSOLUTELY NO WARRANTY; for details type `license'
> Type `bye' to exit
> 1 2 3 pi cr .s f.s fsin cr .s f.s
> <3> 1 2 3 <1> 3.141592653590E0
> <3> 1 2 2125807600 <1> 1.2246467991E-16  ok

Ok, the problem seems to be that fsin et. al globber %edx, and GCC doesn't 
realize that the global register assignment won't work.  I've now moved TOSreg 
to %ecx, which seems to cure that problem.  The few remaining x86 opcodes in 
prim that will use %ecx should be fine with that, because it's already TOS 
(lshift, rshift).

Thanks for all who participated in nailing down this bug.  I have not tested 
it with the original problem submission, but I'm sure someone else on the list 
will do ;-).

-- 
Bernd Paysan
"If you want it done right, you have to do it yourself"
http://bernd-paysan.de/

Attachment: signature.asc
Description: This is a digitally signed message part.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]