Pārlūkot izejas kodu

* op_reg_reg_reg don't need any more a TOpSize parameter

mazen 23 gadi atpakaļ
vecāks
revīzija
928e3c583b

+ 6 - 3
compiler/sparc/aasmcpu.pas

@@ -52,7 +52,7 @@ type
     constructor op_ref_reg(op:tasmop;const _op1:treference;_op2:tregister);
  { this is only allowed if _op1 is an int value (_op1^.isintvalue=true) }
  constructor op_ref_ref(op:tasmop;_size:topsize;const _op1,_op2:treference);
- constructor op_reg_reg_reg(op:tasmop;_size:topsize;_op1,_op2,_op3:tregister);
+ constructor op_reg_reg_reg(op:tasmop;_op1,_op2,_op3:tregister);
  constructor op_reg_const_reg(op:tasmop;_size:topsize;_op1:TRegister;_op2:aWord;_op3:tregister);
  constructor op_reg_ref_reg(op:tasmop;_size:topsize;_op1:tregister;const _op2:treference;_op3:TRegister);
  constructor op_const_ref_reg(op:tasmop;_size:topsize;_op1:aword;const _op2:treference;_op3:tregister);
@@ -232,7 +232,7 @@ constructor taicpu.op_ref_ref(op:tasmop;_size:topsize;const _op1,_op2:treference
      loadref(0,_op1);
      loadref(1,_op2);
   end;
-constructor taicpu.op_reg_reg_reg(op:tasmop;_size:topsize;_op1,_op2,_op3:tregister);
+constructor taicpu.op_reg_reg_reg(op:tasmop;_op1,_op2,_op3:tregister);
   begin
      inherited create(op);
      init(_size);
@@ -1138,7 +1138,10 @@ procedure InitAsm;
 end.
 {
     $Log$
-    Revision 1.10  2002-11-05 16:15:00  mazen
+    Revision 1.11  2002-11-06 11:31:24  mazen
+    * op_reg_reg_reg don't need any more a TOpSize parameter
+
+    Revision 1.10  2002/11/05 16:15:00  mazen
     *** empty log message ***
 
     Revision 1.9  2002/10/28 20:59:17  mazen

+ 5 - 2
compiler/sparc/cga.pas

@@ -126,7 +126,7 @@ procedure emit_const_reg_reg(i:tasmop;s:topsize;c:longint;reg1,reg2:tregister);
   end;
 procedure emit_reg_reg_reg(i:tasmop;s:topsize;reg1,reg2,reg3:tregister);
   begin
-    exprasmList.concat(Taicpu.Op_reg_reg_reg(i,S_L,reg1,reg2,reg3));
+    exprasmList.concat(Taicpu.Op_reg_reg_reg(i,reg1,reg2,reg3));
   end;
 procedure emit_sym(i:tasmop;s:topsize;op:tasmsymbol);
   begin
@@ -135,7 +135,10 @@ procedure emit_sym(i:tasmop;s:topsize;op:tasmsymbol);
 end.
 {
   $Log$
-  Revision 1.3  2002-10-22 13:43:01  mazen
+  Revision 1.4  2002-11-06 11:31:24  mazen
+  * op_reg_reg_reg don't need any more a TOpSize parameter
+
+  Revision 1.3  2002/10/22 13:43:01  mazen
   - cga.pas redueced to an empty unit
 
   Revision 1.2  2002/10/13 19:47:34  mazen

+ 8 - 5
compiler/sparc/cgcpu.pas

@@ -113,7 +113,7 @@ procedure tcgSPARC.a_param_reg(list:TAasmOutput;size:tcgsize;r:tregister;CONST L
 			  LOC_REGISTER:
     			if r<>Register
 					then
-						Concat(taicpu.op_Reg_Reg_Reg(A_OR,S_SW,r,R_G0,Register));
+						Concat(taicpu.op_Reg_Reg_Reg(A_OR,r,R_G0,Register));
 				else
 				  InternalError(2002101002);
 			end;
@@ -214,7 +214,7 @@ procedure tcgSPARC.a_load_const_reg(list:TAasmOutput;size:TCGSize;a:aword;reg:TR
       THEN{R_G0 is usually set to zero, so we use it}
         Concat(taicpu.op_reg_const_reg(A_OR,TCGSize2OpSize[size],R_G0,a,reg))
       ELSE{The is no A_MOV in sparc, that's why we use A_OR with help of R_G0}
-        Concat(taicpu.op_reg_reg_reg(A_OR,TCGSize2OpSize[size],R_G0,R_G0,reg));
+        Concat(taicpu.op_reg_reg_reg(A_OR,R_G0,R_G0,reg));
   END;
 procedure tcgSPARC.a_load_const_ref(list:TAasmOutput;size:tcgsize;a:aword;CONST ref:TReference);
   BEGIN
@@ -269,7 +269,7 @@ procedure tcgSPARC.a_load_reg_reg(list:TAasmOutput;fromsize,tosize:tcgsize;reg1,
           OS_S16:
             InternalError(2002100803);{concat(taicpu.op_reg_reg(A_EXTSH,reg2,reg1));}
           OS_32,OS_S32:
-            concat(taicpu.op_reg_reg_reg(A_OR,S_SW,R_G0,reg1,reg2));
+            concat(taicpu.op_reg_reg_reg(A_OR,R_G0,reg1,reg2));
           else internalerror(2002090901);
         end;
   end;
@@ -707,7 +707,7 @@ procedure tcgSPARC.a_op_const_reg(list:TAasmOutput;Op:TOpCG;a:AWord;reg:TRegiste
             { can't do anything special for these }
             inherited a_op_reg_reg_reg(list,op,size,src1,src2,dst);
           OP_IMUL:
-            list.concat(taicpu.op_reg_reg_reg(A_SMUL,S_SW,src1,src2,dst));
+            list.concat(taicpu.op_reg_reg_reg(A_SMUL,src1,src2,dst));
           OP_ADD:
             begin
               reference_reset(tmpref);
@@ -1254,7 +1254,10 @@ BEGIN
 END.
 {
   $Log$
-  Revision 1.21  2002-11-05 16:15:00  mazen
+  Revision 1.22  2002-11-06 11:31:24  mazen
+  * op_reg_reg_reg don't need any more a TOpSize parameter
+
+  Revision 1.21  2002/11/05 16:15:00  mazen
   *** empty log message ***
 
   Revision 1.20  2002/11/03 20:22:40  mazen

+ 15 - 15
compiler/sparc/naddcpu.pas

@@ -31,7 +31,7 @@ TYPE
     FUNCTION GetResFlags(unsigned:Boolean):TResFlags;
     procedure left_must_be_reg(OpSize:TOpSize;NoSwap:Boolean);
     procedure emit_generic_code(op:TAsmOp;OpSize:TOpSize;unsigned,extra_not,mboverflow:Boolean);
-    procedure emit_op_right_left(op:TAsmOp;OpSize:TOpsize);
+    procedure emit_op_right_left(op:TAsmOp);
     procedure pass_left_and_right;
     procedure set_result_location(cmpOp,unsigned:Boolean);
   end;
@@ -142,8 +142,7 @@ procedure TSparcAddNode.emit_generic_code(op:TAsmOp;OpSize:TOpSize;unsigned,extr
             if extra_not
             then
               emit_reg(A_NOT,S_L,left.location.register);
-             // emit_reg_reg(op,opsize,left.location.register,right.location.register);
-            exprasmList.concat(Taicpu.Op_reg_reg_reg(Op,S_L,right.location.register,left.location.register,right.location.register));
+            exprasmList.concat(Taicpu.Op_reg_reg_reg(Op,right.location.register,left.location.register,right.location.register));
             { newly swapped also set swapped flag }
             location_swap(left.location,right.location);
             toggleflag(nf_swaped);
@@ -154,7 +153,7 @@ procedure TSparcAddNode.emit_generic_code(op:TAsmOp;OpSize:TOpSize;unsigned,extr
             then
               emit_reg(A_NOT,S_L,right.location.register);
            // emit_reg_reg(op,opsize,right.location.register,left.location.register);
-            exprasmList.concat(Taicpu.Op_reg_reg_reg(Op,S_L,right.location.register,left.location.register,right.location.register));
+            exprasmList.concat(Taicpu.Op_reg_reg_reg(Op,right.location.register,left.location.register,right.location.register));
           end;
       end
     ELSE
@@ -208,7 +207,7 @@ procedure TSparcAddNode.emit_generic_code(op:TAsmOp;OpSize:TOpSize;unsigned,extr
                   end
                 ELSE
                   begin
-                    emit_op_right_left(op,opsize);
+                    emit_op_right_left(op);
                   end;
               end;
           end;
@@ -234,13 +233,13 @@ procedure TSparcAddNode.emit_generic_code(op:TAsmOp;OpSize:TOpSize;unsigned,extr
           end;
       end;
   end;
-procedure TSparcAddNode.emit_op_right_left(op:TAsmOp;OpSize:TOpsize);
+procedure TSparcAddNode.emit_op_right_left(op:TAsmOp);
   begin
     {left must be a register}
     with exprasmlist do
       case right.location.loc of
         LOC_REGISTER,LOC_CREGISTER:
-          concat(taicpu.op_reg_reg_reg(op,S_W,right.location.register,left.location.register,left.location.register));
+          concat(taicpu.op_reg_reg_reg(op,right.location.register,left.location.register,left.location.register));
         LOC_REFERENCE,LOC_CREFERENCE :
           concat(taicpu.op_reg_ref_reg(op,S_W,left.location.register,right.location.reference,left.location.register));
         LOC_CONSTANT:
@@ -262,17 +261,14 @@ procedure TSparcAddNode.set_result_location(cmpOp,unsigned:Boolean);
   end;
 procedure TSparcAddNode.pass_2;
 {is also being used for "xor", and "mul", "sub", or and comparative operators}
-  VAR
+  var
     popeax,popedx,pushedfpu,mboverflow,cmpop:Boolean;
     op:TAsmOp;
     power:LongInt;
     OpSize:TOpSize;
     unsigned:Boolean;{true, if unsigned types are compared}
-        { is_in_dest if the result is put directly into }
-        { the resulting refernce or varregister }
-        {is_in_dest : boolean;}
-        { true, if for sets subtractions the extra not should generated }
     extra_not:Boolean;
+    cgop:TOpCg;
   begin
 {to make it more readable, string and set (not smallset!) have their own
 procedures }
@@ -318,7 +314,8 @@ procedures }
     extra_not:=false;
     mboverflow:=false;
     cmpop:=false;
-    unsigned:=not(is_signed(left.resulttype.def))or not(is_signed(right.resulttype.def));
+    unsigned:=not(is_signed(left.resulttype.def))or 
+              not(is_signed(right.resulttype.def));
     opsize:=def_opsize(left.resulttype.def);
     pass_left_and_right;
     IF(left.resulttype.def.deftype=pointerdef)OR
@@ -461,7 +458,7 @@ procedures }
               location_release(exprasmlist,left.location);
             end;
             set_result_location(cmpop,unsigned);
-          end
+          end;
 
         { 8/16 bit enum,char,wchar types }
 {         else
@@ -528,7 +525,10 @@ begin
 end.
 {
     $Log$
-    Revision 1.6  2002-11-05 16:15:00  mazen
+    Revision 1.7  2002-11-06 11:31:24  mazen
+    * op_reg_reg_reg don't need any more a TOpSize parameter
+
+    Revision 1.6  2002/11/05 16:15:00  mazen
     *** empty log message ***
 
     Revision 1.5  2002/10/22 13:43:01  mazen

+ 6 - 4
compiler/sparc/ncpucnv.pas

@@ -267,7 +267,7 @@ implementation
 
          tg.ungetiftemp(exprasmlist,ref);
 
-         exprasmlist.concat(taicpu.op_reg_reg_reg(A_SUB,S_L,location.register,
+         exprasmlist.concat(taicpu.op_reg_reg_reg(A_SUB,location.register,
            location.register,tmpfpureg));
          rg.ungetregisterfpu(exprasmlist,tmpfpureg);
 
@@ -325,8 +325,7 @@ implementation
                 hreg1 := rg.getregisterint(exprasmlist);
                 exprasmlist.concat(taicpu.op_reg_const_reg(A_SUB,S_L,hreg1,1,
                   hreg2));
-                exprasmlist.concat(taicpu.op_reg_reg_reg(A_SUB,S_L,hreg1,hreg1,
-                  hreg2));
+                exprasmlist.concat(taicpu.op_reg_reg_reg(A_SUB,hreg1,hreg1,hreg2));
                 rg.ungetregister(exprasmlist,hreg2);
               end;
             LOC_FLAGS :
@@ -421,7 +420,10 @@ begin
 end.
 {
   $Log$
-  Revision 1.5  2002-10-22 13:43:01  mazen
+  Revision 1.6  2002-11-06 11:31:24  mazen
+  * op_reg_reg_reg don't need any more a TOpSize parameter
+
+  Revision 1.5  2002/10/22 13:43:01  mazen
   - cga.pas redueced to an empty unit
 
   Revision 1.4  2002/10/10 19:57:52  mazen