[clean-list] questions from a beginner
lethevert
acatofearlgrey at ybb.ne.jp
Mon Apr 30 14:55:15 MEST 2007
Hello,
> The 32 bit code generator transfers Reals between registers, which are
> 80 bits, and memory locations, which are 64 bits. Whenever Reals get
> stored (unboxed on the B-stack or boxed on the A-stack/heap), they get
> converted to 64 bit floating point numbers.
>
> Calculations on Reals are performed by a mix of 80 bit precision
> operations and 64 bit precision loads and stores. Often these conversion
> to 64 bit precision are not generated because the machine has enough
> registers to keep all intermediate results.
>
> This means that calculations on Reals can yield different result
> depending on the register spills of the code generator. Results can also
> change because of gaining or losing strictness in your expressions,
> because only a strict and unboxed Real can stay in a register.
I see.
So this is the same kind of problem as described in the site at
http://docs.sun.com/source/817-6702/ncg_goldberg.html#pgfId-3164
Thank you,
lethevert
lethevert at users.sourceforge.net
More information about the clean-list
mailing list