This work around brings thumb1 bootstrap back. Though I cannot approve, I would like it in stage 3. A complete fix in thumb1 pattern will be welcomed.
Thanks, Joey On Thu, Nov 20, 2014 at 7:54 PM, Tom de Vries <tom_devr...@mentor.com> 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? > > Thanks, > - Tom