function.c (nonlocal_goto_handler_slots): Renamed from nonlocal_goto_handler_slot...
authorBernd Schmidt <crux@pool.informatik.rwth-aachen.de>
Fri, 20 Nov 1998 07:37:42 +0000 (07:37 +0000)
committerJeff Law <law@gcc.gnu.org>
Fri, 20 Nov 1998 07:37:42 +0000 (00:37 -0700)
commitba716ac9252b1a97585420a02c4f3172902e4dd3
treea92aab8090880174e955a4c9c4a9f38938ea2d05
parent294377f8a5c1027c9e402a0d1bff73c924c59c28
function.c (nonlocal_goto_handler_slots): Renamed from nonlocal_goto_handler_slot; now an EXPR_LIST chain.

        * 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.

From-SVN: r23732
gcc/ChangeLog
gcc/calls.c
gcc/config/i960/i960.md
gcc/config/sparc/sparc.md
gcc/explow.c
gcc/expr.h
gcc/function.c
gcc/function.h
gcc/stmt.c