]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
rs6000.c (find_addr_reg): Handle LO_SUM addresses.
authorJeff Law <law@gcc.gnu.org>
Mon, 21 Jun 1999 21:20:52 +0000 (15:20 -0600)
committerJeff Law <law@gcc.gnu.org>
Mon, 21 Jun 1999 21:20:52 +0000 (15:20 -0600)
        * rs6000.c (find_addr_reg): Handle LO_SUM addresses.
        * rs6000.md (movdf_hardfloat32): Fix typo.

From-SVN: r27685

gcc/ChangeLog
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/rs6000.md

index f3a87496306935e9feef40d2259a3886346e6003..4ae8884dde92b78c116f0937fe4576c08ff8fd62 100644 (file)
@@ -1,3 +1,11 @@
+Mon Jun 21 22:15:50 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * rs6000.c (find_addr_reg): Handle LO_SUM addresses.
+
+Mon Jun 21 22:14:05 1999  David Edelsohn  <edelsohn@gnu.org>
+
+       * rs6000.md (movdf_hardfloat32): Fix typo.
+
 Mon Jun 21 20:10:42 1999  Richard Henderson  <rth@cygnus.com>
 
        * collect2.c (main): Log frame table count.
index 7e6f6090a421c42027f2d61f0272d2c2c17b985c..571caa020f2c8990fc873f8b8ab9a90e8ef69b98 100644 (file)
@@ -5685,6 +5685,9 @@ struct rtx_def *
 find_addr_reg (addr)
      rtx addr;
 {
+  if (GET_CODE (addr) == LO_SUM)
+    addr = XEXP (addr, 0);
+
   while (GET_CODE (addr) == PLUS)
     {
       if (GET_CODE (XEXP (addr, 0)) == REG)
index fa6c591871695e9e84770f844bc95ff9aa58a5ea..a31762a3a119a5d6afee7259091e81911adf1d33 100644 (file)
        {
          rtx addreg;
 
-         if (GET_CODE (XEXP (operands[1], 0)) == PRE_INC
-             || GET_CODE (XEXP (operands[1], 0)) == PRE_DEC)
+         if (GET_CODE (XEXP (operands[0], 0)) == PRE_INC
+             || GET_CODE (XEXP (operands[0], 0)) == PRE_DEC)
            abort ();
 
          addreg = find_addr_reg (XEXP (operands[0], 0));