Bug in local spilling code
Jeffrey A Law
law@cygnus.com
Fri Nov 20 07:39:00 GMT 1998
In message <Pine.GSO.4.02A.9810281035400.6834-100000@matlock.informatik.rwth-
aachen.de>you write:
> * function.c (nonlocal_goto_handler_slots): Renamed from
> nonlocal_goto_handler_slot; now an EXPR_LIST chain.
> (push_function_context_to): Adjust for this change.
> (pop_function_context_from): Likewise.
> (init_function_start): Likewise.
> (expand_function_end): Likewise.
> * function.h (struct function): Likewise.
> * calls.c (expand_call): Likewise.
> * explow.c (allocate_dynamic_stack_space): Likewise.
> * expr.h (nonlocal_goto_handler_slots): Rename its declaration.
>
> * stmt.c (declare_nonlocal_label): Make a new handler slot for each
> label.
> (expand_goto): When doing a nonlocal goto, find corresponding handler
> slot for it. Don't put the label address in the static chain register.
(expand_end_bindings): Break out nonlocal goto handling code into
> three new functions.
> (expand_nl_handler_label, expand_nl_goto_receiver,
> expand_nl_goto_receivers): New static functions, broken out of
> expand_end_bindings and adapted to create one handler per nonlocal
> label.
> * function.c (delete_handlers): Delete insn if it references any of
> the nonlocal goto handler slots.
>
> * i960.md (nonlocal_goto): Comment out code that modifies
> static_chain_rtx.
> * sparc.md (nonlocal_goto): Likewise.
> (goto_handler_and_restore_v9): Comment out.
> (goto_handler_and_restore_v9_sp64): Comment out.
Thanks! Installed.
jeff
More information about the Gcc-patches
mailing list