This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Bug in jump.c (jump_optimize)


H.J. Lu writes:

 > I believe the bug is introduced by this patch:

<jump.c patch snipped>

 > On x86, 0.0 and 1.0 are 2 special floating point constansts among
 > others. They can be pushed onto the floating point resgister stack.
 > They are not in memory nor in resgister. When the floating point
 > constants are enabled for conditional move, gcc will try to
 > load (cc0) onto the floating point resgister stack. It certainly
 > won't work. We need to fix i386.md to handle those special
 > floating point constansts.

I submitted this patch to GCC2 a while ago but Kenner deferred it
since he was trying to get 2.8.0 out and had some reservation about
conditional loads of floating point constants.  It looks like Jeff
picked it up and installed it into EGCS. 

Is this just a problem with the definition of the 386 conditional move
patterns?

On a related note, I have been looking at conditional loads from
memory.  Are there any caveats to watch with this, apart from
dereferencing a pointer also used in the condition?

Michael.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]