diff options
author | Jakub Jelinek <jakub@redhat.com> | 2009-05-16 09:09:52 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2009-05-16 09:09:52 +0200 |
commit | a99c6711f83e23596c5fdbf575484e3fa34d6e45 (patch) | |
tree | c765aad5a9e6be9c4da70e004f44d0e3b02b6b7a /gcc | |
parent | 7e5487a214d591ab394310fa2f8840c42b745ee7 (diff) | |
download | gcc-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/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/i386/linux.h | 6 | ||||
-rw-r--r-- | gcc/config/i386/x86-64.h | 4 |
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"); \ } \ } \ |