ARM setjmp and r12
Schwarz, Konrad
konrad.schwarz@siemens.com
Fri Apr 28 14:45:00 GMT 2006
> > On the ARM, why does setjmp preserve r12 (ip)? I believe r12 is
> > caller-preserved, not callee-preserved.
> >
> > arm/setjmp.S:122
> > /* Save all the callee-preserved registers into the
> jump buffer. */
> > stmea a1!, { v1-v7, fp, ip, sp, lr }
>
> I *think* that this is because GCC uses it as the static
> chain register for nested functions (when operating in ARM mode).
Would that even be legal? Shouldn't the contents/layout of jmpbuf be
specified by the ABI? Or how would different implementations
interoperate?
Regards,
Konrad Schwarz
More information about the Newlib
mailing list