*** empty log message ***
authorRichard Kenner <kenner@gcc.gnu.org>
Mon, 13 Apr 1992 19:15:23 +0000 (15:15 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Mon, 13 Apr 1992 19:15:23 +0000 (15:15 -0400)
From-SVN: r737

gcc/config/rs6000/rs6000.md

index ee49f29..1af952f 100644 (file)
   int start = INTVAL (operands[3]) & 31;
   int size = INTVAL (operands[2]) & 31;
 
+  if ((start < 16 && start + size <= 16) || start >= 16)
+    {
+      operands[3] = gen_rtx (CONST_INT, VOIDmode,
+                            ((1 << (16 - (start & 15)))
+                             - (1 << (16 - (start & 15) - size))));
+      if (start < 16)
+       return \"andiu. %4,%1,%3\";
+      else
+       return \"andil. %4,%1,%3\";
+    }
+  
   if (start + size >= 32)
     operands[3] = const0_rtx;
   else