OSDN Git Service

2007-06-21 H.J. Lu <hongjiu.lu@intel.com>
authorhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 21 Jun 2007 12:31:09 +0000 (12:31 +0000)
committerhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 21 Jun 2007 12:31:09 +0000 (12:31 +0000)
* config/i386/i386.c (processor_target_table): Increase maximum
skip from 7 byte to 10 byte for Pentium Pro, Core 2 Duo and
default 64bit.

* config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Ensure 8
byte alignment if > 8 byte alignment is preferred.
* config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@125920 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/i386/i386.c
gcc/config/i386/linux.h
gcc/config/i386/x86-64.h

index 24b715a..2195e41 100644 (file)
@@ -1,3 +1,13 @@
+2007-06-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386.c (processor_target_table): Increase maximum
+       skip from 7 byte to 10 byte for Pentium Pro, Core 2 Duo and
+       default 64bit.
+
+       * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Ensure 8
+       byte alignment if > 8 byte alignment is preferred.
+       * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
+
 2007-06-21  Jakub Jelinek  <jakub@redhat.com>
 
        PR tree-optimization/31866
index 1a8fa11..ad51cb6 100644 (file)
@@ -1726,16 +1726,16 @@ override_options (void)
       {&i386_cost, 4, 3, 4, 3, 4},
       {&i486_cost, 16, 15, 16, 15, 16},
       {&pentium_cost, 16, 7, 16, 7, 16},
-      {&pentiumpro_cost, 16, 15, 16, 7, 16},
+      {&pentiumpro_cost, 16, 15, 16, 10, 16},
       {&geode_cost, 0, 0, 0, 0, 0},
       {&k6_cost, 32, 7, 32, 7, 32},
       {&athlon_cost, 16, 7, 16, 7, 16},
       {&pentium4_cost, 0, 0, 0, 0, 0},
       {&k8_cost, 16, 7, 16, 7, 16},
       {&nocona_cost, 0, 0, 0, 0, 0},
-      {&core2_cost, 16, 7, 16, 7, 16},
+      {&core2_cost, 16, 10, 16, 10, 16},
       {&generic32_cost, 16, 7, 16, 7, 16},
-      {&generic64_cost, 16, 7, 16, 7, 16},
+      {&generic64_cost, 16, 10, 16, 10, 16},
       {&amdfam10_cost, 32, 24, 32, 7, 32}
     };
 
index f0f7df6..04237ca 100644 (file)
@@ -145,7 +145,13 @@ Boston, MA 02110-1301, USA.  */
   do {                                                                 \
     if ((LOG) != 0) {                                                  \
       if ((MAX_SKIP) == 0) fprintf ((FILE), "\t.p2align %d\n", (LOG)); \
-      else fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
+      else {                                                           \
+       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))               \
+         fprintf ((FILE), "\t.p2align 3\n");                           \
+      }                                                                        \
     }                                                                  \
   } while (0)
 #endif
index cb92a21..a7e3fea 100644 (file)
@@ -66,7 +66,13 @@ Boston, MA 02110-1301, USA.  */
   do {                                                                 \
     if ((LOG) != 0) {                                                  \
       if ((MAX_SKIP) == 0) fprintf ((FILE), "\t.p2align %d\n", (LOG)); \
-      else fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
+      else {                                                           \
+       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))               \
+         fprintf ((FILE), "\t.p2align 3\n");                           \
+      }                                                                        \
     }                                                                  \
   } while (0)
 #endif