OSDN Git Service

Jan Hubicka <hubicka@freesoft.cz>
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 13 Apr 1999 14:15:46 +0000 (14:15 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 13 Apr 1999 14:15:46 +0000 (14:15 +0000)
        * i386.md: Do not output mov %0,reg on AMD K6.

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

gcc/ChangeLog
gcc/config/i386/i386.md

index ee6ed83..9cdc3f4 100644 (file)
@@ -1,3 +1,7 @@
+Tue Apr 13 14:14:06 1999  Jan Hubicka <hubicka@freesoft.cz>
+
+       * i386.md: Do not output mov %0,reg on AMD K6.
+
 Tue Apr 13 12:14:07 1999  Dave Brolley  <brolley@cygnus.com>
 
        * cppinit.c (cpp_start_read): Fix buffer overwrite.
index 8eade3e..7e143ac 100644 (file)
   "*
 {
   rtx link;
-  if ((ix86_cpu != PROCESSOR_K6 || optimize_size)
-      && operands[1] == const0_rtx && REG_P (operands[0]))
+
+  /* Use of xor was disabled for AMD K6 as recommended by the Optimization
+     Manual.  My test shows, that this generally hurts the performance, because
+     mov is longer and takes longer to decode and decoding is the main
+     bottleneck of K6 when executing GCC code.  */
+
+  if (operands[1] == const0_rtx && REG_P (operands[0]))
     return AS2 (xor%L0,%0,%0);
 
   if (operands[1] == const1_rtx
   "*
 {
   rtx link;
-  if ((ix86_cpu != PROCESSOR_K6 || optimize_size)
-      && operands[1] == const0_rtx && REG_P (operands[0]))
+
+  /* Use of xor was disabled for AMD K6 as recommended by the Optimization
+     Manual.  My test shows, that this generally hurts the performance, because
+     mov is longer and takes longer to decode and decoding is the main
+     bottleneck of K6 when executing GCC code.  */
+
+  if (operands[1] == const0_rtx && REG_P (operands[0]))
     return AS2 (xor%W0,%0,%0);
 
   if (operands[1] == const1_rtx