aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2001-08-04 09:46:00 -0700
committerRichard Henderson <rth@gcc.gnu.org>2001-08-04 09:46:00 -0700
commit68c5782de8832894baee92b07653a8a44afce4be (patch)
tree4f13b2896ed625868d7c6b79536725c64228e56b
parent8bbbef343486eea56bb5c9ebf241c0872e4083b3 (diff)
downloadgcc-68c5782de8832894baee92b07653a8a44afce4be.zip
gcc-68c5782de8832894baee92b07653a8a44afce4be.tar.gz
gcc-68c5782de8832894baee92b07653a8a44afce4be.tar.bz2
* i386.c: Revert 07-30 ix86_output_main_function_alignment_hack.
From-SVN: r44638
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/i386/i386.c47
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 <rth@redhat.com>
+
+ * i386.c: Revert 07-30 ix86_output_main_function_alignment_hack.
+
2001-08-04 Neil Booth <neil@daikokuya.demon.co.uk>
* 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)