OSDN Git Service

(mips_move_2words): Rewrite 32 bit shifts as 16 bit shifts.
authorwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 10 Sep 1996 23:02:46 +0000 (23:02 +0000)
committerwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 10 Sep 1996 23:02:46 +0000 (23:02 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12696 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/config/mips/mips.c

index 09015bc..1bc47d4 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";
            }
        }