aboutsummaryrefslogtreecommitdiff
path: root/gcc/except.h
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2001-05-11 23:03:20 -0700
committerRichard Henderson <rth@gcc.gnu.org>2001-05-11 23:03:20 -0700
commit2a1ee410cefc93b247bbcc9b8a153ba5af72be73 (patch)
tree41492fd525139d18c6f3c8bd8894fcdf4cbcd139 /gcc/except.h
parentf12f25a7f625fc69ab610b8997e1f6f5c1ccf982 (diff)
downloadgcc-2a1ee410cefc93b247bbcc9b8a153ba5af72be73.zip
gcc-2a1ee410cefc93b247bbcc9b8a153ba5af72be73.tar.gz
gcc-2a1ee410cefc93b247bbcc9b8a153ba5af72be73.tar.bz2
defaults.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
* defaults.h (ASM_PREFERRED_EH_DATA_FORMAT): New. * dwarf2asm.c (dw2_force_const_mem, dw2_output_indirect_constant_1, dw2_output_indirect_constants, dw2_asm_output_encoded_addr_rtx): New. * dwarf2asm.h (dw2_asm_output_encoded_addr_rtx): Prototype. (dw2_output_indirect_constants): Prototype. * dwarf2out.c (dwarf2out_begin_prologue): Generate current_function_func_begin_label if we'll need it for EH. Exit early for IA64_UNWIND_INFO. * except.c: Get DW_EH_PE_* defines from dwarf2.h. (eh_data_format_name): Update for indirect references. (output_function_exception_table): Care for IA64_UNWIND_INFO. Handle ASM_PREFERRED_EH_DATA_FORMAT. * except.h (MUST_USE_SJLJ_EXCEPTIONS): IA64_UNWIND_INFO needn't define HAVE_eh_return etc. * final.c (final_start_function): Always call dwarf2out_begin_prologue. (final_end_function): Don't call output_function_exception_table. * toplev.c (compile_file): Call dw2_output_indirect_constants. (rest_of_compilation): Invoke output_function_exception_table for ia64 before assemble_end_function. * tm.texi (ASM_PREFERRED_EH_DATA_FORMAT): Document. (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Document. * unwind-dw2.c (_Unwind_GetTextRelBase, _Unwind_GetDataRelBase): New. * unwind.h: Declare them. * libgcc-std.ver: Export them. * unwind-pe.h: New file. * config/alpha/elf.h (ASM_PREFERRED_EH_DATA_FORMAT): New. * config/ia64/fde-glibc.c: Use "struct unw_table_entry" instead of "fde". (find_fde_for_dso): Extract DT_PLTGOT. (_Unwind_FindTableEntry): Rename from __ia64_find_fde; return the segment and gp as well. * config/ia64/frame-ia64.c: Remove file. * config/ia64/frame-ia64.h: Remove file. * config/ia64/unwind-ia64.c: New file. * config/ia64/unwind-ia64.h: New file. * config/ia64/ia64.h (ASM_OUTPUT_EH_CHAR): Remove. (ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT): Remove. (ASM_OUTPUT_EH_DOUBLE_INT): Remove. (ASM_PREFERRED_EH_DATA_FORMAT): New. (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New. (IA64_UNWIND_INFO): Re-enable. (HANDLER_SECTION): Remove. (EH_RETURN_DATA_REGNO): New. * config/ia64/ia64.md (exception_receiver): Remove. * config/ia64/t-glibc (LIB2ADDEH): Re-enable. * config/ia64/t-ia64 (LIB2ADDEH): Re-enable. From-SVN: r41981
Diffstat (limited to 'gcc/except.h')
-rw-r--r--gcc/except.h12
1 files changed, 6 insertions, 6 deletions
diff --git a/gcc/except.h b/gcc/except.h
index b2c3943..e0c8c2e 100644
--- a/gcc/except.h
+++ b/gcc/except.h
@@ -173,12 +173,12 @@ extern tree (*lang_eh_runtime_type) PARAMS ((tree));
mean that we can use call frame exceptions. Detect that the target
has appropriate support. */
-#if !defined (EH_RETURN_DATA_REGNO) \
- || !defined(EH_RETURN_STACKADJ_RTX) \
- || ! (defined(EH_RETURN_HANDLER_RTX) \
- || defined(HAVE_eh_return)) \
- || ! (defined(DWARF2_UNWIND_INFO) \
- || defined(IA64_UNWIND_INFO))
+#if ! (defined (EH_RETURN_DATA_REGNO) \
+ && (defined (IA64_UNWIND_INFO) \
+ || (defined (DWARF2_UNWIND_INFO) \
+ && defined (EH_RETURN_STACKADJ_RTX) \
+ && (defined (EH_RETURN_HANDLER_RTX) \
+ || defined (HAVE_eh_return)))))
#define MUST_USE_SJLJ_EXCEPTIONS 1
#else
#define MUST_USE_SJLJ_EXCEPTIONS 0