------- Comment #10 from purnnam1 at naver dot com 2008-03-07 16:15 ------- Thanks to Brian's kind comment, I have knew that the exact mechanism. In my understannding, the conclusion is as follows;
1. GCC 3.x doesn't generate any codes for 80-bit precision. the FPU h/w just uses the 80-bit internal format. 2. The double rounding (80-bit rounding in the calculation and then 64-bit rounding in doing FST instruction) inside the FPU (not gcc generated codes) causes this issue. 3. GCC 4.x can add an initialization code to change the default precision of FPU. I really appreciate that I have learned many things from this issue from many great experts in the world. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35488