瀏覽代碼

+ op_reg_reg_reg_const_const (for rlwnm)

Jonas Maebe 22 年之前
父節點
當前提交
1ff5307e5d
共有 1 個文件被更改,包括 23 次插入1 次删除
  1. 23 1
      compiler/powerpc/aasmcpu.pas

+ 23 - 1
compiler/powerpc/aasmcpu.pas

@@ -56,6 +56,7 @@ uses
          constructor op_reg_bool_reg_reg(op : tasmop;_op1: tregister;_op2:boolean;_op3,_op4:tregister);
          constructor op_reg_bool_reg_const(op : tasmop;_op1: tregister;_op2:boolean;_op3:tregister;_op4: longint);
 
+         constructor op_reg_reg_reg_const_const(op : tasmop;_op1,_op2,_op3 : tregister;_op4,_op5 : Longint);
          constructor op_reg_reg_const_const_const(op : tasmop;_op1,_op2 : tregister;_op3,_op4,_op5 : Longint);
 
 
@@ -304,6 +305,24 @@ implementation
          loadconst(0,cardinal(_op4));
       end;
 
+
+     constructor taicpu.op_reg_reg_reg_const_const(op : tasmop;_op1,_op2,_op3 : tregister;_op4,_op5 : Longint);
+      begin
+         inherited create(op);
+         if (_op1.enum = R_INTREGISTER) and (_op1.number = NR_NO) then
+           internalerror(2003031232);
+         if (_op2.enum = R_INTREGISTER) and (_op2.number = NR_NO) then
+           internalerror(2003031233);
+         if (_op3.enum = R_INTREGISTER) and (_op3.number = NR_NO) then
+           internalerror(2003031233);
+         ops:=5;
+         loadreg(0,_op1);
+         loadreg(1,_op2);
+         loadreg(2,_op3);
+         loadconst(3,cardinal(_op4));
+         loadconst(4,cardinal(_op5));
+      end;
+
      constructor taicpu.op_reg_reg_const_const_const(op : tasmop;_op1,_op2 : tregister;_op3,_op4,_op5 : Longint);
       begin
          inherited create(op);
@@ -383,7 +402,10 @@ implementation
 end.
 {
   $Log$
-  Revision 1.5  2003-03-12 22:43:38  jonas
+  Revision 1.6  2003-05-11 11:08:25  jonas
+    + op_reg_reg_reg_const_const (for rlwnm)
+
+  Revision 1.5  2003/03/12 22:43:38  jonas
     * more powerpc and generic fixes related to the new register allocator
 
   Revision 1.4  2002/12/14 15:02:03  carl