]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
i386.c (processor_target_table): Increase maximum skip from 7 byte to 10 byte for...
authorH.J. Lu <hongjiu.lu@intel.com>
Thu, 21 Jun 2007 12:31:09 +0000 (12:31 +0000)
committerH.J. Lu <hjl@gcc.gnu.org>
Thu, 21 Jun 2007 12:31:09 +0000 (05:31 -0700)
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.

From-SVN: r125920

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

index 24b715a74e4f1491cdbe620bc7fd4e7b0fc5a651..2195e4154a2916d460df2c5ea4dd46cf3348b77a 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 1a8fa110927c1ebb5cd579c6563e55fd02499e71..ad51cb616fe566ddf8a266cbc1e7a2fa65c5372b 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 f0f7df600fa7ac30db986e5b5b95b78e67ea8f5a..04237ca2e30161a932f51b65a3df938873915771 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 cb92a21f652ed0946c4f138e921adb7d92336b1b..a7e3feaa0fd8f77ae5492710f8b1fb6d1c618527 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