diff options
author | Paul Brook <paul@codesourcery.com> | 2011-10-21 21:04:13 +0000 |
---|---|---|
committer | Bernd Schmidt <bernds@gcc.gnu.org> | 2011-10-21 21:04:13 +0000 |
commit | 74b388c3393db06df440d0774261b420639e8a97 (patch) | |
tree | 54028ee27342d2aa7073936a68b49bd3ef8b1942 /gcc/config/c6x | |
parent | 56dc349e1ac313eba284b4487d51e4c56797d3f3 (diff) | |
download | gcc-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.c | 26 |
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 |