Exception Handling implementation with Return Address (RA) having PC right shifted by 1

Ian Lance Taylor iant@google.com
Mon Nov 22 18:15:00 GMT 2010


Sumanth Gundapaneni <Sumanth.Gundapaneni@kpitcummins.com> writes:

> During branching to the called function, the return address of the next 
> instruction right shifted by 1 is stored in the RA(Return Address) 
> register. This is a hardware implementation.
>
> The DWARF information generated for EH has found to be storing this right 
> shifted return value appropriately. To my knowledge , debugging 
> information for variables and stack pushed registers was generated correctly.
>
> How can I communicate to DWARF EH regarding the right shifted value of 
> return address. How can I do this in backend code?

It's not clear to me why the DWARF EH encoding should care that the
return address is right shifted.  What is actually going wrong?

The usual way to tell the DWARF code to do something unusual is to build
a REG_CFA_DEF_CFA note and attach it to some relevant insn.

Ian



More information about the Gcc-help mailing list