This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RFC: DWARF2 support for VAX ELF.


I've recently gotten my VAX ELF support submitted to binutils.  So now
I'm working on integrating my changes for GCC into the mainline sources.

One obstacle I'm running into is the support of DWARF2 with ELF on VAX.
Since I'm using standard VAX calling instructions (CALLS/CALLG/RET), I
will always have a frame pointer.

My first problem is how to define INITIAL_FRAME_SP_OFFSET for VAX.
I can't know the SP as used in the previous frame since it depends on
whether CALLS or CALLG was used and the number of arguments used.  But
getting the frame pointer is trivial (as an RTX, not as a offset).  But
DWARF2 seems to want to use SP whereas use of FP is more natural on a
VAX.  Note that all stack based variables are referenced off of FP
rather than SP.

Again, my next problem is DWARF2's insistence of using SP.  I want to
define EH_RETURN_HANDLER_RTX as INCOMING_RETURN_ADDR_RTX but that defined
in terms of FP which initial_return_save find's objectionable (it aborts
if the REG is not the SP).

Along the same lines, I'd to define EH_RETURN_STACKADJ_RTX as "-4(%fp)"
but again DWARF2 wants it to be SP based.

So my question is how do I get DWARF2 to play properly on the VAX when
the VAX wants everything FP based and DWARF2 wants SP based.  Any
suggestions?

--
Matt Thomas               Internet:   matt@3am-software.com
3am Software Foundry      WWW URL:    http://www.3am-software.com/bio/matt/
Cupertino, CA             Disclaimer: I avow all knowledge of this message


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]