http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45585
Michael Meissner <meissner at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at gcc dot |meissner at gcc dot gnu.org |gnu.org | --- Comment #5 from Michael Meissner <meissner at gcc dot gnu.org> 2010-11-05 21:28:55 UTC --- Created attachment 22297 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=22297 Patch to allow loading/storing DI values in FPR registers This patch fixes the problem in the bug. What is happening is originally if you were loading up a static 64-bit integer variable to convert it to floating point, the compiler would first load the variable into a GPR, then store it on the stack, and then load the value from the stack to the FPR. My optimization allowed the fp convert to take memory operands so it didn't have to go through the GPR registers. However, since Darwin has its own patterns for load/store, it didn't go through the normal move patterns, and was overlooked.