summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authormidipix <writeonce@midipix.org>2019-03-11 05:46:30 -0400
committermidipix <writeonce@midipix.org>2019-03-12 02:53:38 -0400
commitb5865d2ba8b96feb0b4c431cee7f6860098414a9 (patch)
treec18325e98401cccd0361d6ccc6a35c1bf336be93 /gcc
parenta2dd78d3cc3a0676b039fb096829c303fdf00932 (diff)
downloadcbb-gcc-4.6.4-b5865d2ba8b96feb0b4c431cee7f6860098414a9.tar.bz2
cbb-gcc-4.6.4-b5865d2ba8b96feb0b4c431cee7f6860098414a9.tar.xz
midipix targets: impl. midipix_seh_hook__pe_seh_{init_sections|unwind_emit}().
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/i386/midipix.c43
1 files changed, 7 insertions, 36 deletions
diff --git a/gcc/config/i386/midipix.c b/gcc/config/i386/midipix.c
index 5a28e23c7..1636911b5 100644
--- a/gcc/config/i386/midipix.c
+++ b/gcc/config/i386/midipix.c
@@ -50,16 +50,12 @@ static const char winnt_ptrsize_quad[] = ".quad";
void winnt_x86_64_pe_seh_init(FILE *);
void winnt_x86_64_pe_seh_end_prologue(FILE *);
void winnt_x86_64_pe_seh_unwind_emit(FILE *, rtx);
-void winnt_x86_64_pe_seh_emit_except_personality(rtx);
-void winnt_x86_64_pe_seh_init_sections(void);
/* 32-bit seh provided by midipix */
void midipix_i386_pe_seh_init(FILE *);
void midipix_i386_pe_seh_end_prologue(FILE *);
void midipix_i386_pe_seh_unwind_emit(FILE *, rtx);
-void midipix_i386_pe_seh_emit_except_personality(rtx);
-void midipix_i386_pe_seh_init_sections(void);
/* debugging */
@@ -356,21 +352,19 @@ void midipix_seh_hook__pe_seh_unwind_emit(FILE * f, rtx r)
-void midipix_seh_hook__pe_seh_emit_except_personality(rtx r)
+void midipix_seh_hook__pe_seh_emit_except_personality(rtx personality)
{
- if (TARGET_SEH_WINNT)
- winnt_x86_64_pe_seh_emit_except_personality(r);
- else if (TARGET_SEH_MIDIPIX)
- midipix_i386_pe_seh_emit_except_personality(r);
+ fputs("\t.seh_handler\t",asm_out_file);
+ output_addr_const (asm_out_file, personality);
+ fputs(", @unwind, @except\n",asm_out_file);
}
void midipix_seh_hook__pe_seh_init_sections(void)
{
- if (TARGET_SEH_WINNT)
- winnt_x86_64_pe_seh_init_sections();
- else if (TARGET_SEH_MIDIPIX)
- midipix_i386_pe_seh_init_sections();
+ exception_section = get_unnamed_section(
+ 0,output_section_asm_op,
+ "\t.seh_handlerdata");
}
@@ -394,19 +388,6 @@ void winnt_x86_64_pe_seh_unwind_emit(FILE * f, rtx r)
}
-void winnt_x86_64_pe_seh_emit_except_personality(rtx r __attribute__((unused)))
-{
- /* i386_pe_seh_emit_except_personality(r); */
-}
-
-
-void winnt_x86_64_pe_seh_init_sections(void)
-{
- /* i386_pe_seh_init_sections(); */
-}
-
-
-
/* 32-bit seh hooks (midipix) */
void midipix_i386_pe_seh_init(FILE * f __attribute__((unused)))
{
@@ -425,16 +406,6 @@ void midipix_i386_pe_seh_unwind_emit(
}
-void midipix_i386_pe_seh_emit_except_personality(rtx r __attribute__((unused)))
-{
-}
-
-
-void midipix_i386_pe_seh_init_sections(void)
-{
-}
-
-
section * midipix_i386_pe_function_section (
tree decl,
enum node_frequency freq,