aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/c6x
diff options
context:
space:
mode:
authorPaul Brook <paul@codesourcery.com>2011-10-21 21:04:13 +0000
committerBernd Schmidt <bernds@gcc.gnu.org>2011-10-21 21:04:13 +0000
commit74b388c3393db06df440d0774261b420639e8a97 (patch)
tree54028ee27342d2aa7073936a68b49bd3ef8b1942 /gcc/config/c6x
parent56dc349e1ac313eba284b4487d51e4c56797d3f3 (diff)
downloadgcc-74b388c3393db06df440d0774261b420639e8a97.zip
gcc-74b388c3393db06df440d0774261b420639e8a97.tar.gz
gcc-74b388c3393db06df440d0774261b420639e8a97.tar.bz2
c6x.c (c6x_asm_emit_except_personality, [...]): New functions.
* config/c6x/c6x.c (c6x_asm_emit_except_personality, c6x_asm_init_sections): New functions. (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): Define. From-SVN: r180314
Diffstat (limited to 'gcc/config/c6x')
-rw-r--r--gcc/config/c6x/c6x.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/gcc/config/c6x/c6x.c b/gcc/config/c6x/c6x.c
index 6712dea..b9b9370 100644
--- a/gcc/config/c6x/c6x.c
+++ b/gcc/config/c6x/c6x.c
@@ -5477,6 +5477,26 @@ filter_insns_above (basic_block bb, int max_uid)
}
}
+/* Implement TARGET_ASM_EMIT_EXCEPT_PERSONALITY. */
+
+static void
+c6x_asm_emit_except_personality (rtx personality)
+{
+ fputs ("\t.personality\t", asm_out_file);
+ output_addr_const (asm_out_file, personality);
+ fputc ('\n', asm_out_file);
+}
+
+/* Use a special assembly directive rather than a regular setion for
+ unwind table data. */
+
+static void
+c6x_asm_init_sections (void)
+{
+ exception_section = get_unnamed_section (0, output_section_asm_op,
+ "\t.handlerdata");
+}
+
/* A callback for the hw-doloop pass. Called to optimize LOOP in a
machine-specific fashion; returns true if successful and false if
the hwloop_fail function should be called. */
@@ -6797,6 +6817,12 @@ c6x_debug_unwind_info (void)
#undef TARGET_ARM_EABI_UNWINDER
#define TARGET_ARM_EABI_UNWINDER true
+#undef TARGET_ASM_EMIT_EXCEPT_PERSONALITY
+#define TARGET_ASM_EMIT_EXCEPT_PERSONALITY c6x_asm_emit_except_personality
+
+#undef TARGET_ASM_INIT_SECTIONS
+#define TARGET_ASM_INIT_SECTIONS c6x_asm_init_sections
+
#undef TARGET_DEBUG_UNWIND_INFO
#define TARGET_DEBUG_UNWIND_INFO c6x_debug_unwind_info