------- Comment #5 from ramana at gcc dot gnu dot org 2010-01-14 16:21 ------- I took a cursory look at this case . This looks like a bug in the backend specifically in arm_output_epilogue where the epilogue code isn't designed to cope for restoring disjoint sets of registers from the stack when the frame pointer is eliminated.
The epilogue code for restoring these registers would work fine in the case where a. The registers to be restored are in a single sequence for load multiple irrespective of whether the frame pointer is used or not. b. If the function ends up using a frame_pointer. We need a separate case for when the frame pointer is not required and one has more than one sequence to restore. -- ramana at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |wrong-code Known to fail| |4.4.2 4.5.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42321