From b5865d2ba8b96feb0b4c431cee7f6860098414a9 Mon Sep 17 00:00:00 2001 From: midipix Date: Mon, 11 Mar 2019 05:46:30 -0400 Subject: midipix targets: impl. midipix_seh_hook__pe_seh_{init_sections|unwind_emit}(). --- gcc/config/i386/midipix.c | 43 +++++++------------------------------------ 1 file changed, 7 insertions(+), 36 deletions(-) (limited to 'gcc') 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, -- cgit v1.2.3