(mips_move_2words): Rewrite 32 bit shifts as 16 bit shifts.
authorJim Wilson <wilson@gcc.gnu.org>
Tue, 10 Sep 1996 23:02:46 +0000 (16:02 -0700)
committerJim Wilson <wilson@gcc.gnu.org>
Tue, 10 Sep 1996 23:02:46 +0000 (16:02 -0700)
From-SVN: r12696

gcc/config/mips/mips.c

index 09015bc0512567fa2fa0b08be1f3fede1be4951c..1bc47d407644967e5239c0cde99df2046cc0ea3b 100644 (file)
@@ -1539,8 +1539,10 @@ mips_move_2words (operands, insn)
            }
          else
            {
-             operands[2] = GEN_INT (INTVAL (operands[1]) >> 32);
-             operands[1] = GEN_INT (INTVAL (operands[1]) << 32 >> 32);
+             /* We use multiple shifts here, to avoid warnings about out
+                of range shifts on 32 bit hosts.  */
+             operands[2] = GEN_INT (INTVAL (operands[1]) >> 16 >> 16);
+             operands[1] = GEN_INT (INTVAL (operands[1]) << 16 << 16 >> 16 >> 16);
              ret = "li\t%M0,%2\n\tli\t%L0,%1";
            }
        }