Hi,
in builtins.c:expand_builtin_setjmp_receiver I see the following code:
827 /* Now put in the code to restore the frame pointer, and argument
828 pointer, if needed. */
829 #ifdef HAVE_nonlocal_goto
830 if (! HAVE_nonlocal_goto)
831 #endif
832 {
833 emit_move_insn (virtual_stack_vars_rtx, hard_frame_pointer_rtx);
834 /* This might change the hard frame pointer in ways that aren't
835 apparent to early optimization passes, so force a clobber. */
836 emit_clobber (hard_frame_pointer_rtx);
837 }
Shouldn't that code somehow honor STARTING_FRAME_OFFSET ?
Or maybe virtual_stack_vars_rtx shouldn't include that offset? The
thing is I'm playing with a port these days, and I'm not able to make
all the testsuite pass when STARTING_FRAME_OFFSET is not 0. I tracked
the failures down to that move instruction that makes following stack
vars accesses fail when there's an offset between the frame pointer
and the first stack variable.
Thanks!
Fred