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]

Re: sparc.c:save_regs() offsets passed to dwarf2 code


> A value relative to real_offset is what is passed to the dwarf code,
> this causes an assertion failure (for offset>=0) in reg_save().
> 
> What was intended here?  (note that STACK_BIAS is involved in these
> cases, so this may be contributing, but somehow I doubt it)

What is intended is for offset to be an unsigned displacement from
the "canonical frame address" (cfa), which is a dwarf invention.
The cfa remains constant througout the function, despite pushes,
pops, and other such adjustments that may ocurr in the prologue 
and epilogue.

It seems likely to me that the stack_bias is involved, and that
the incomming cfa offset (off the stack pointer) is incorrect,
which would affect everything after that.


r~


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