aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2009-05-16 09:09:52 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2009-05-16 09:09:52 +0200
commita99c6711f83e23596c5fdbf575484e3fa34d6e45 (patch)
treec765aad5a9e6be9c4da70e004f44d0e3b02b6b7a /gcc
parent7e5487a214d591ab394310fa2f8840c42b745ee7 (diff)
downloadgcc-a99c6711f83e23596c5fdbf575484e3fa34d6e45.zip
gcc-a99c6711f83e23596c5fdbf575484e3fa34d6e45.tar.gz
gcc-a99c6711f83e23596c5fdbf575484e3fa34d6e45.tar.bz2
re PR target/39942 (Nonoptimal code - leaveq; xchg %ax,%ax; retq)
PR target/39942 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second .p2align 3 if MAX_SKIP is smaller than 7. * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. From-SVN: r147606
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/i386/linux.h6
-rw-r--r--gcc/config/i386/x86-64.h4
3 files changed, 14 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c4177e6..950c8f5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2009-05-16 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/39942
+ * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
+ .p2align 3 if MAX_SKIP is smaller than 7.
+ * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
+
2009-05-15 Ian Lance Taylor <iant@google.com>
* alias.c (struct alias_set_entry_d): Rename from struct
diff --git a/gcc/config/i386/linux.h b/gcc/config/i386/linux.h
index 2293168..9742b9b 100644
--- a/gcc/config/i386/linux.h
+++ b/gcc/config/i386/linux.h
@@ -1,6 +1,6 @@
/* Definitions for Intel 386 running Linux-based GNU systems with ELF format.
Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2004, 2005,
- 2006, 2007, 2008 Free Software Foundation, Inc.
+ 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
Contributed by Eric Youngdale.
Modified for stabs-in-ELF by H.J. Lu.
@@ -153,7 +153,9 @@ along with GCC; see the file COPYING3. If not see
fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
/* Make sure that we have at least 8 byte alignment if > 8 byte \
alignment is preferred. */ \
- if ((LOG) > 3 && (1 << (LOG)) > ((MAX_SKIP) + 1)) \
+ if ((LOG) > 3 \
+ && (1 << (LOG)) > ((MAX_SKIP) + 1) \
+ && (MAX_SKIP) >= 7) \
fprintf ((FILE), "\t.p2align 3\n"); \
} \
} \
diff --git a/gcc/config/i386/x86-64.h b/gcc/config/i386/x86-64.h
index 46dcad1..96649af 100644
--- a/gcc/config/i386/x86-64.h
+++ b/gcc/config/i386/x86-64.h
@@ -74,7 +74,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
/* Make sure that we have at least 8 byte alignment if > 8 byte \
alignment is preferred. */ \
- if ((LOG) > 3 && (1 << (LOG)) > ((MAX_SKIP) + 1)) \
+ if ((LOG) > 3 \
+ && (1 << (LOG)) > ((MAX_SKIP) + 1) \
+ && (MAX_SKIP) >= 7) \
fprintf ((FILE), "\t.p2align 3\n"); \
} \
} \