On 20/11/14 11:54, Tom de Vries wrote:
Richard,

This patch fixes PR63718, which currently breaks Thumb1 bootstrap.

The problem is that in Thumb1 mode, we emit the epilogue in RTL, but the last
insn - epilogue_insns - does not accurately model the corresponding insns
emitted in the asm file. F.i., the asm file may contain an insn:
...
    pop     {r0}
....
while the corresponding RTL pattern looks like this:
...
(jump_insn (unspec_volatile [
              (return)
           ] VUNSPEC_EPILOGUE))
...

As a consequence, the epilogue may clobber registers without fuse-caller-save
being able to analyze that.

Adding the missing clobbers to epilogue_insns is not trivial, and probably not a
good idea for stage3. The patch works around the problem by disabling
fuse-caller-save in Thumb1 mode.

Build and reg-tested on arm-none-eabi.

OK for stage3?

This is OK, can you make sure that a bug is created to reflect the work required to make this work in the backend.

Sorry about the delay in review.

regards
Ramana


Thanks,
- Tom

Reply via email to