From 68c5782de8832894baee92b07653a8a44afce4be Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Sat, 4 Aug 2001 09:46:00 -0700 Subject: * i386.c: Revert 07-30 ix86_output_main_function_alignment_hack. From-SVN: r44638 --- gcc/ChangeLog | 4 ++++ gcc/config/i386/i386.c | 47 ----------------------------------------------- 2 files changed, 4 insertions(+), 47 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 59a292b..9cd98e9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2001-08-04 Richard Henderson + + * i386.c: Revert 07-30 ix86_output_main_function_alignment_hack. + 2001-08-04 Neil Booth * cpphash.h (struct cpp_reader): New member directive_line. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 2547ea4..6508625d 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -574,7 +574,6 @@ static HOST_WIDE_INT ix86_GOT_alias_set PARAMS ((void)); static void ix86_adjust_counter PARAMS ((rtx, HOST_WIDE_INT)); static rtx ix86_expand_aligntest PARAMS ((rtx, int)); static void ix86_expand_strlensi_unroll_1 PARAMS ((rtx, rtx)); -static void ix86_output_main_function_alignment_hack PARAMS ((FILE *f, int)); struct ix86_address { @@ -640,10 +639,6 @@ static void sco_asm_named_section PARAMS ((const char *, unsigned int, HOST_WIDE_INT)); # undef TARGET_ASM_FUNCTION_PROLOGUE # define TARGET_ASM_FUNCTION_PROLOGUE ix86_osf_output_function_prologue -#else -# undef TARGET_ASM_FUNCTION_PROLOGUE -# define TARGET_ASM_FUNCTION_PROLOGUE \ - ix86_output_main_function_alignment_hack #endif #undef TARGET_ASM_OPEN_PAREN @@ -10788,48 +10783,6 @@ ix86_memory_move_cost (mode, class, in) } } -/* Most of current runtimes (Jul 2001) do not align stack properly when - entering main, so emit an wrapper to align stack before the real main - code is called. - - This can eventually go if we manage to fix the runtimes or teach gcc - to dynamically align stack in main automatically. - - Adding check to configure is probably not good idea, as binarry can move - from one shared library to older. */ - -static void -ix86_output_main_function_alignment_hack (file, size) - FILE *file; - int size ATTRIBUTE_UNUSED; -{ - rtx label; - char buf[256]; - /* Check that we see main function with maximally 8 bytes of arguments. - if so, emit the hack to align stack for runtimes, where this constraint - is broken. */ - if (strcmp (cfun->name, "main")) - return; - if (cfun->pops_args || cfun->args_size > 12) - return; - if (PREFERRED_STACK_BOUNDARY <= 2) - return; - label = gen_label_rtx (); - fprintf (file, "\tpushl\t%%ebp\n"); - fprintf (file, "\tmovl\t%%esp, %%ebp\n"); - fprintf (file, "\tandl\t$0xfffffff0, %%esp\n"); - fprintf (file, "\tpushl\t%%ebp\n"); - fprintf (file, "\tpushl\t16(%%ebp)\n"); - fprintf (file, "\tpushl\t12(%%ebp)\n"); - fprintf (file, "\tpushl\t8(%%ebp)\n"); - fprintf (file, "\tcall\t"); - ASM_GENERATE_INTERNAL_LABEL (buf, "L", CODE_LABEL_NUMBER (label)); - assemble_name (file, buf); - fprintf (file, "\n\tleave\n"); - fprintf (file, "\tret\n"); - ASM_OUTPUT_INTERNAL_LABEL (file, "L", CODE_LABEL_NUMBER (label)); -} - #if defined(TARGET_ELF) && defined(TARGET_COFF) static void sco_asm_named_section (name, flags, align) -- cgit v1.1