i386.h (enum reg_class): Move CLOBBERED_REGS prior to Q_REGS.
authorAlexander Monakov <amonakov@ispras.ru>
Mon, 25 May 2015 18:07:26 +0000 (21:07 +0300)
committerAlexander Monakov <amonakov@gcc.gnu.org>
Mon, 25 May 2015 18:07:26 +0000 (21:07 +0300)
* config/i386/i386.h (enum reg_class): Move CLOBBERED_REGS prior to
Q_REGS.  Expand comment.
(REG_CLASS_NAMES): Ditto.
(REG_CLASS_CONTENTS): Ditto.
testsuite:
* gcc.target/i386/pr66232-1.c: Adjust scan pattern.
* gcc.target/i386/pr66232-3.c: Likewise.

From-SVN: r223650

gcc/ChangeLog
gcc/config/i386/i386.h
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr66232-1.c
gcc/testsuite/gcc.target/i386/pr66232-3.c

index c30a64343981e970d4e78df1a54817d7ed687a3e..a387c80ca855c641828a92733178e7498bbc7ec9 100644 (file)
@@ -1,3 +1,10 @@
+2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
+
+       * config/i386/i386.h (enum reg_class): Move CLOBBERED_REGS prior to
+       Q_REGS.  Expand comment.
+       (REG_CLASS_NAMES): Ditto.
+       (REG_CLASS_CONTENTS): Ditto.
+
 2015-05-25  Uros Bizjak  <ubizjak@gmail.com>
 
        PR target/66274
index 40e8f834e6f51804dd18482966befdd13a8d0ac9..34ef343f0f5dd163aec6d535e2e004bda064400f 100644 (file)
@@ -1298,7 +1298,9 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
 
    The classes must be numbered in nondecreasing order; that is,
    a larger-numbered class must never be contained completely
-   in a smaller-numbered class.
+   in a smaller-numbered class.  This is why CLOBBERED_REGS class
+   is listed early, even though in 64-bit mode it contains more
+   registers than just %eax, %ecx, %edx.
 
    For any two classes, it is very desirable that there be another
    class that represents their union.
@@ -1314,11 +1316,11 @@ enum reg_class
   NO_REGS,
   AREG, DREG, CREG, BREG, SIREG, DIREG,
   AD_REGS,                     /* %eax/%edx for DImode */
+  CLOBBERED_REGS,              /* call-clobbered integer registers */
   Q_REGS,                      /* %eax %ebx %ecx %edx */
   NON_Q_REGS,                  /* %esi %edi %ebp %esp */
   INDEX_REGS,                  /* %eax %ebx %ecx %edx %esi %edi %ebp */
   LEGACY_REGS,                 /* %eax %ebx %ecx %edx %esi %edi %ebp %esp */
-  CLOBBERED_REGS,              /* call-clobbered integer registers */
   GENERAL_REGS,                        /* %eax %ebx %ecx %edx %esi %edi %ebp %esp
                                   %r8 %r9 %r10 %r11 %r12 %r13 %r14 %r15 */
   FP_TOP_REG, FP_SECOND_REG,   /* %st(0) %st(1) */
@@ -1375,10 +1377,10 @@ enum reg_class
    "AREG", "DREG", "CREG", "BREG",     \
    "SIREG", "DIREG",                   \
    "AD_REGS",                          \
+   "CLOBBERED_REGS",                   \
    "Q_REGS", "NON_Q_REGS",             \
    "INDEX_REGS",                       \
    "LEGACY_REGS",                      \
-   "CLOBBERED_REGS",                   \
    "GENERAL_REGS",                     \
    "FP_TOP_REG", "FP_SECOND_REG",      \
    "FLOAT_REGS",                       \
@@ -1414,11 +1416,11 @@ enum reg_class
       { 0x10,       0x0,    0x0 },       /* SIREG */                     \
       { 0x20,       0x0,    0x0 },       /* DIREG */                     \
       { 0x03,       0x0,    0x0 },       /* AD_REGS */                   \
+      { 0x07,       0x0,    0x0 },       /* CLOBBERED_REGS */            \
       { 0x0f,       0x0,    0x0 },       /* Q_REGS */                    \
   { 0x1100f0,    0x1fe0,    0x0 },       /* NON_Q_REGS */                \
       { 0x7f,    0x1fe0,    0x0 },       /* INDEX_REGS */                \
   { 0x1100ff,       0x0,    0x0 },       /* LEGACY_REGS */               \
-      { 0x07,       0x0,    0x0 },       /* CLOBBERED_REGS */            \
   { 0x1100ff,    0x1fe0,    0x0 },       /* GENERAL_REGS */              \
      { 0x100,       0x0,    0x0 },       /* FP_TOP_REG */                \
     { 0x0200,       0x0,    0x0 },       /* FP_SECOND_REG */             \
index 91fd4c55b69ae6c718a0f30e9abade26ee2e66e1..a6db2a7ce8b129d2035b8ee43d0b05d791185e4e 100644 (file)
@@ -1,3 +1,8 @@
+2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
+
+       * gcc.target/i386/pr66232-1.c: Adjust scan pattern.
+       * gcc.target/i386/pr66232-3.c: Likewise.
+
 2015-05-25  Uros Bizjak  <ubizjak@gmail.com>
 
        PR target/66274
index ba4a5ef5467186a47c47e509a6aaf5d9eb9cd5d7..5ea03de09bdc158cc598841842e2f1d2149cc366 100644 (file)
@@ -10,4 +10,4 @@ foo (void)
 }
 
 /* { dg-final { scan-assembler "jmp\[ \t\]*.bar@GOTPCREL" { target { ! ia32 } } } } */
-/* { dg-final { scan-assembler "call\[ \t\]*.bar@GOT\\(" { target ia32 } } } */
+/* { dg-final { scan-assembler "jmp\[ \t\]*.bar@GOT\\(" { target ia32 } } } */
index ee3176cac689d0a56efd8d89a4b1c06ca4478f14..e6ba60f34aaff3612e8e31d4e2deb523d369f4e1 100644 (file)
@@ -10,4 +10,4 @@ foo (void)
 }
 
 /* { dg-final { scan-assembler "jmp\[ \t\]*.bar@GOTPCREL" { target { ! ia32 } } } } */
-/* { dg-final { scan-assembler "call\[ \t\]*.bar@GOT\\(" { target ia32 } } } */
+/* { dg-final { scan-assembler "jmp\[ \t\]*.bar@GOT\\(" { target ia32 } } } */