]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
c6x.c (c6x_asm_emit_except_personality, [...]): New functions.
authorPaul Brook <paul@codesourcery.com>
Fri, 21 Oct 2011 21:04:13 +0000 (21:04 +0000)
committerBernd Schmidt <bernds@gcc.gnu.org>
Fri, 21 Oct 2011 21:04:13 +0000 (21:04 +0000)
* 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

gcc/ChangeLog
gcc/config/c6x/c6x.c

index 5d077c353e50b767dda8d4470d8676c695575c69..406667a396dc415d53d3dce3d5287e6e17b38c6f 100644 (file)
@@ -1,3 +1,10 @@
+2011-10-21  Paul Brook  <paul@codesourcery.com>
+
+       * 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.
+
 2011-10-21  Jakub Jelinek  <jakub@redhat.com>
 
        PR target/50813
index 6712dea4a1440ad66311c446c30f71211c8b882b..b9b93707be9a384cac87a5c26e485c922567eecf 100644 (file)
@@ -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