diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 1998-09-15 19:19:12 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 1998-09-15 19:19:12 +0000 |
commit | ec37ccb4cc413884d02d17d3351b46d8f53ad63a (patch) | |
tree | 5f8b92560efd1078cbd16601e8b3502296539971 /gcc/c-decl.c | |
parent | e393f69e6c3e1117ecd702fef8f20704f8bf88b0 (diff) | |
download | gcc-ec37ccb4cc413884d02d17d3351b46d8f53ad63a.tar.gz |
* tree.h (BUILT_IN_CALLER_RETURN_ADDRESS): Unused. Kill.
(BUILT_IN_FP, BUILT_IN_SP, BUILT_IN_SET_RETURN_ADDR_REG): Kill.
(BUILT_IN_EH_STUB_OLD, BUILT_IN_EH_STUB, BUILT_IN_SET_EH_REGS): Kill.
(BUILT_IN_EH_RETURN, BUILT_IN_DWARF_CFA): New.
* c-decl.c (init_decl_processing): Update accordingly.
* expr.c (expand_builtin): Likewise.
* cp/decl.c (init_decl_processing): Likewise.
* rtl.h (global_rtl): Add cfa entry.
(virtual_cfa_rtx, VIRTUAL_CFA_REGNUM): New.
(LAST_VIRTUAL_REGISTER): Update.
* emit-rtl.c (global_rtl): Add cfa entry.
(init_emit): Initialize it.
* function.c (cfa_offset): New.
(instantiate_virtual_regs): Initialize it.
(instantiate_virtual_regs_1): Instantiate virtual_cfa_rtx.
(expand_function_end): Call expand_eh_return.
* tm.texi (ARG_POINTER_CFA_OFFSET): New.
* except.c (current_function_eh_stub_label): Kill.
(current_function_eh_old_stub_label): Likwise; update all references.
(expand_builtin_set_return_addr_reg): Kill.
(expand_builtin_eh_stub_old, expand_builtin_eh_stub): Kill.
(expand_builtin_set_eh_regs): Kill.
(eh_regs): Produce a third reg for the actual handler address.
(eh_return_context, eh_return_stack_adjust): New.
(eh_return_handler, eh_return_stub_label): New.
(init_eh_for_function): Initialize them.
(expand_builtin_eh_return, expand_eh_return): New.
* except.h: Update prototypes.
* flow.c (find_basic_blocks_1): Update references to the stub label.
* function.h (struct function): Kill stub label elements.
* libgcc2.c (in_reg_window): For REG_SAVED_REG, check that the
register number is one that would be in the previous window.
Provide a dummy definition for non-windowed targets.
(get_reg_addr): New function.
(get_reg, put_reg, copy_reg): Use it.
(__throw): Rely on in_reg_window, not INCOMING_REGNO. Kill stub
generating code and use __builtin_eh_return. Use __builtin_dwarf_cfa.
* alpha.c (alpha_eh_epilogue_sp_ofs): New.
(alpha_init_expanders): Initialize it.
(alpha_expand_epilogue): Use it.
* alpha.h: Declare it.
* alpha.md (eh_epilogue): New.
* m68h.h (ARG_POINTER_CFA_OFFSET): New.
* sparc.h (ARG_POINTER_CFA_OFFSET): New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22436 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/c-decl.c')
-rw-r--r-- | gcc/c-decl.c | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/gcc/c-decl.c b/gcc/c-decl.c index 168400bd7f5..f05dc27a1a7 100644 --- a/gcc/c-decl.c +++ b/gcc/c-decl.c @@ -3291,8 +3291,8 @@ init_decl_processing () builtin_function ("__builtin_unwind_init", build_function_type (void_type_node, endlink), BUILT_IN_UNWIND_INIT, NULL_PTR); - builtin_function ("__builtin_fp", ptr_ftype_void, BUILT_IN_FP, NULL_PTR); - builtin_function ("__builtin_sp", ptr_ftype_void, BUILT_IN_SP, NULL_PTR); + builtin_function ("__builtin_dwarf_cfa", ptr_ftype_void, + BUILT_IN_DWARF_CFA, NULL_PTR); builtin_function ("__builtin_dwarf_fp_regnum", build_function_type (unsigned_type_node, endlink), BUILT_IN_DWARF_FP_REGNUM, NULL_PTR); @@ -3302,24 +3302,16 @@ init_decl_processing () BUILT_IN_FROB_RETURN_ADDR, NULL_PTR); builtin_function ("__builtin_extract_return_addr", ptr_ftype_ptr, BUILT_IN_EXTRACT_RETURN_ADDR, NULL_PTR); - builtin_function ("__builtin_set_return_addr_reg", - build_function_type (void_type_node, - tree_cons (NULL_TREE, - ptr_type_node, - endlink)), - BUILT_IN_SET_RETURN_ADDR_REG, NULL_PTR); - builtin_function ("__builtin_eh_stub_old", ptr_ftype_void, - BUILT_IN_EH_STUB_OLD, NULL_PTR); - builtin_function ("__builtin_eh_stub", ptr_ftype_void, - BUILT_IN_EH_STUB, NULL_PTR); builtin_function - ("__builtin_set_eh_regs", + ("__builtin_eh_return", build_function_type (void_type_node, tree_cons (NULL_TREE, ptr_type_node, tree_cons (NULL_TREE, type_for_mode (ptr_mode, 0), - endlink))), - BUILT_IN_SET_EH_REGS, NULL_PTR); + tree_cons (NULL_TREE, + ptr_type_node, + endlink)))), + BUILT_IN_EH_RETURN, NULL_PTR); builtin_function ("__builtin_alloca", build_function_type (ptr_type_node, |