fixed some patterns: operand could have side effects
authorceriel <none@none>
Tue, 8 May 1990 09:03:28 +0000 (09:03 +0000)
committerceriel <none@none>
Tue, 8 May 1990 09:03:28 +0000 (09:03 +0000)
mach/vax4/top/table

index 809f291..438d091 100644 (file)
@@ -38,46 +38,46 @@ cvtwl ZERO,X                        ->      clrl X;
 
 /* change 3-operand instructions to 2-operand instructions */
 
-addw3 X,Y,Y                    ->      addw2 X,Y;
-addl3 X,Y,Y                    ->      addl2 X,Y;
-addf3 X,Y,Y                    ->      addf2 X,Y;
-addd3 X,Y,Y                    ->      addd2 X,Y;
-
-addw3 X,Y,X                    ->      addw2 Y,X;
-addl3 X,Y,X                    ->      addl2 Y,X;
-addf3 X,Y,X                    ->      addf2 Y,X;
-addd3 X,Y,X                    ->      addd2 Y,X;
-
-subw3 X,Y,Y                    ->      subw2 X,Y;
-subl3 X,Y,Y                    ->      subl2 X,Y;
-subf3 X,Y,Y                    ->      subf2 X,Y;
-subd3 X,Y,Y                    ->      subd2 X,Y;
-
-mulw3 X,Y,Y                    ->      mulw2 X,Y;
-mull3 X,Y,Y                    ->      mull2 X,Y;
-mulf3 X,Y,Y                    ->      mulf2 X,Y;
-muld3 X,Y,Y                    ->      muld2 X,Y;
-
-mulw3 X,Y,X                    ->      mulw2 Y,X;
-mull3 X,Y,X                    ->      mull2 Y,X;
-mulf3 X,Y,X                    ->      mulf2 Y,X;
-muld3 X,Y,X                    ->      muld2 Y,X;
-
-divw3 X,Y,Y                    ->      divw2 X,Y;
-divl3 X,Y,Y                    ->      divl2 X,Y;
-divf3 X,Y,Y                    ->      divf2 X,Y;
-divd3 X,Y,Y                    ->      divd2 X,Y;
-
-xorw3 X,Y,Y                    ->      xorw2 X,Y;
-xorl3 X,Y,Y                    ->      xorl2 X,Y;
-
-bisw3 X,Y,Y                    ->      bisw2 X,Y;
-bisl3 X,Y,Y                    ->      bisl2 X,Y;
-bisw3 X,Y,X                    ->      bisw2 Y,X;
-bisl3 X,Y,X                    ->      bisl2 Y,X;
-
-bicw3 X,Y,Y                    ->      bicw2 X,Y;
-bicl3 X,Y,Y                    ->      bicl2 X,Y;
+addw3 X,A,A                    ->      addw2 X,A;
+addl3 X,A,A                    ->      addl2 X,A;
+addf3 X,A,A                    ->      addf2 X,A;
+addd3 X,A,A                    ->      addd2 X,A;
+
+addw3 A,Y,A                    ->      addw2 Y,A;
+addl3 A,Y,A                    ->      addl2 Y,A;
+addf3 A,Y,A                    ->      addf2 Y,A;
+addd3 A,Y,A                    ->      addd2 Y,A;
+
+subw3 X,A,A                    ->      subw2 X,A;
+subl3 X,A,A                    ->      subl2 X,A;
+subf3 X,A,A                    ->      subf2 X,A;
+subd3 X,A,A                    ->      subd2 X,A;
+
+mulw3 X,A,A                    ->      mulw2 X,A;
+mull3 X,A,A                    ->      mull2 X,A;
+mulf3 X,A,A                    ->      mulf2 X,A;
+muld3 X,A,A                    ->      muld2 X,A;
+
+mulw3 A,Y,A                    ->      mulw2 Y,A;
+mull3 A,Y,A                    ->      mull2 Y,A;
+mulf3 A,Y,A                    ->      mulf2 Y,A;
+muld3 A,Y,A                    ->      muld2 Y,A;
+
+divw3 X,A,A                    ->      divw2 X,A;
+divl3 X,A,A                    ->      divl2 X,A;
+divf3 X,A,A                    ->      divf2 X,A;
+divd3 X,A,A                    ->      divd2 X,A;
+
+xorw3 X,A,A                    ->      xorw2 X,A;
+xorl3 X,A,A                    ->      xorl2 X,A;
+
+bisw3 X,A,A                    ->      bisw2 X,A;
+bisl3 X,A,A                    ->      bisl2 X,A;
+bisw3 A,Y,A                    ->      bisw2 Y,A;
+bisl3 A,Y,A                    ->      bisl2 Y,A;
+
+bicw3 X,A,A                    ->      bicw2 X,A;
+bicl3 X,A,A                    ->      bicl2 X,A;
 
 /* eliminate negative constants */