aboutsummaryrefslogtreecommitdiff
path: root/gcc/target.def
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2010-09-07 13:50:17 -0700
committerRichard Henderson <rth@gcc.gnu.org>2010-09-07 13:50:17 -0700
commita68b5e5247b3b8047aa104e39b61a7d8f6cfa57b (patch)
tree41a92d71cf2cb5360f756b8179c661cc2aee74ec /gcc/target.def
parent9b3a7a26767441121e77c66cf0d04b0d35c77282 (diff)
downloadgcc-a68b5e5247b3b8047aa104e39b61a7d8f6cfa57b.zip
gcc-a68b5e5247b3b8047aa104e39b61a7d8f6cfa57b.tar.gz
gcc-a68b5e5247b3b8047aa104e39b61a7d8f6cfa57b.tar.bz2
Hookize exception personality output.
* target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook. * doc/tm.texi.in: Add doc marker. * doc/tm.texi: Rebuild. * except.c (switch_to_exception_section): Always build. (output_one_function_exception_table): Move section switch, personality output, and label output ... (output_function_exception_table): ... here. Use the new personality hook. * config/ia64/ia64.c (ia64_asm_emit_except_personality, ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New. (ia64_asm_unwind_emit): Rename from process_for_unwind_directive, make static. (TARGET_ASM_UNWIND_EMIT): Update to match. * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove. * config/arm/arm.c (arm_asm_emit_except_personality): New. (arm_asm_init_sections): New. (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New. From-SVN: r163968
Diffstat (limited to 'gcc/target.def')
-rw-r--r--gcc/target.def9
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/target.def b/gcc/target.def
index e62a977..6910ce9 100644
--- a/gcc/target.def
+++ b/gcc/target.def
@@ -145,6 +145,15 @@ DEFHOOK
void, (FILE *stream),
default_emit_except_table_label)
+/* Emit a directive for setting the personality for the function. */
+DEFHOOK
+(emit_except_personality,
+ "If the target implements @code{TARGET_ASM_UNWIND_EMIT}, this hook may be\
+ used to emit a directive to install a personality hook into the unwind\
+ info. This hook should not be used if dwarf2 unwind info is used.",
+ void, (rtx personality),
+ NULL)
+
/* Emit any directives required to unwind this instruction. */
DEFHOOK
(unwind_emit,