[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