Re: [ARM] Fix DWARF unwinding breakage

2014-11-07 Thread Richard Earnshaw
On 17/10/14 09:21, Eric Botcazou wrote: > Hi, > > some OSes, for example VxWorks 6, still use DWARF unwinding on the ARM, which > means that they use __builtin_eh_return (EABI unwinding doesn't). The > builtin > is implemented by means of {arm|thumb}_set_return_address, which can generate > a

Re: [ARM] Fix DWARF unwinding breakage

2014-10-17 Thread Eric Botcazou
> [ thinking out loud ] So, I can’t help but wonder if c6x, mips, nios2 and sh > now have the exact same problem (or could if they switched code-gen > some)... ARM is very peculiar here since it goes through a stack slot to copy a value into a register; other architectures, e.g. SPARC, do a bare

Re: [ARM] Fix DWARF unwinding breakage

2014-10-17 Thread Mike Stump
On Oct 17, 2014, at 1:21 AM, Eric Botcazou wrote: > This nevertheless used to work because the blockage insn emitted by the RTL > epilogue was acting as a "wild load" but this got broken by Richard's patch > which removed the "wild load" trick. > The attached patch fixes the breakage by marking

[ARM] Fix DWARF unwinding breakage

2014-10-17 Thread Eric Botcazou
Hi, some OSes, for example VxWorks 6, still use DWARF unwinding on the ARM, which means that they use __builtin_eh_return (EABI unwinding doesn't). The builtin is implemented by means of {arm|thumb}_set_return_address, which can generate a store if LR has been stored on function entry. The pr