alpha.c (secondary_reload_class): Don't allocate a secondary for integral mode memori...
authorRichard Henderson <rth@cygnus.com>
Tue, 25 Jan 2000 10:38:41 +0000 (02:38 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Tue, 25 Jan 2000 10:38:41 +0000 (02:38 -0800)
        * alpha.c (secondary_reload_class): Don't allocate a secondary
        for integral mode memories into FLOAT_REGS.  Rearrange the more
        complicated memory expression inward.

From-SVN: r31606

gcc/ChangeLog
gcc/config/alpha/alpha.c

index b14ef144addbae4db2b6bdfdb0658252a80e81ec..f89a936cb2ccdcc103a7f9211b00184916284b99 100644 (file)
@@ -1,3 +1,9 @@
+2000-01-25  Richard Henderson  <rth@cygnus.com>
+
+       * alpha.c (secondary_reload_class): Don't allocate a secondary
+       for integral mode memories into FLOAT_REGS.  Rearrange the more
+       complicated memory expression inward.
+
 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
 
        * inclhack.def: Fixes to play nicer with FreeBSD, and
index cbc16883d6fdef334b9ef718b9737387f9863047..fa59cc1b373c2ccf9f6af7b2d4abc21f0eee6aae 100644 (file)
@@ -1095,16 +1095,14 @@ secondary_reload_class (class, mode, x, in)
      rtx x;
      int in;
 {
-  if (GET_CODE (x) == MEM
-      || (GET_CODE (x) == REG && REGNO (x) >= FIRST_PSEUDO_REGISTER)
-      || (GET_CODE (x) == SUBREG
-         && (GET_CODE (SUBREG_REG (x)) == MEM
-             || (GET_CODE (SUBREG_REG (x)) == REG
-                 && REGNO (SUBREG_REG (x)) >= FIRST_PSEUDO_REGISTER))))
-    {
-      if (class == FLOAT_REGS && mode != DImode)
-       return GENERAL_REGS;
-      if ((mode == QImode || mode == HImode) && ! TARGET_BWX)
+  if ((mode == QImode || mode == HImode) && ! TARGET_BWX)
+    {
+      if (GET_CODE (x) == MEM
+         || (GET_CODE (x) == REG && REGNO (x) >= FIRST_PSEUDO_REGISTER)
+         || (GET_CODE (x) == SUBREG
+             && (GET_CODE (SUBREG_REG (x)) == MEM
+                 || (GET_CODE (SUBREG_REG (x)) == REG
+                     && REGNO (SUBREG_REG (x)) >= FIRST_PSEUDO_REGISTER))))
        {
          if (!in || !aligned_memory_operand(x, mode))
            return GENERAL_REGS;