Pārlūkot izejas kodu

*** empty log message ***

mazen 23 gadi atpakaļ
vecāks
revīzija
1097619459
3 mainītis faili ar 28 papildinājumiem un 17 dzēšanām
  1. 12 9
      compiler/sparc/aasmcpu.pas
  2. 5 2
      compiler/sparc/cgcpu.pas
  3. 11 6
      compiler/sparc/naddcpu.pas

+ 12 - 9
compiler/sparc/aasmcpu.pas

@@ -54,8 +54,8 @@ type
  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_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);
- constructor op_reg_reg_ref(op:tasmop;_size:topsize;_op1,_op2:tregister; const _op3:treference);
  constructor op_const_reg_ref(op:tasmop;_size:topsize;_op1:aword;_op2:tregister;const _op3:treference);
 
  { this is for Jmp instructions }
@@ -250,14 +250,14 @@ LoadReg(0,_op1);
 LoadConst(1,_op2);
 LoadReg(2,_op3);
   END;
-constructor taicpu.op_reg_reg_ref(op:tasmop;_size:topsize;_op1,_op2:tregister;const _op3:treference);
+constructor taicpu.op_reg_ref_reg(op:tasmop;_size:topsize;_op1:tregister;const _op2:treference;_op3:tregister);
   begin
-     inherited create(op);
-     init(_size);
-     ops:=3;
-     loadreg(0,_op1);
-     loadreg(1,_op2);
-     loadref(2,_op3);
+    inherited create(op);
+    init(_size);
+    ops:=3;
+    LoadReg(0,_op1);
+    LoadRef(1,_op2);
+    LoadReg(2,_op3);
   end;
 constructor taicpu.op_const_ref_reg(op:tasmop;_size:topsize;_op1:aword;const _op2:treference;_op3:tregister);
   begin
@@ -1138,7 +1138,10 @@ procedure InitAsm;
 end.
 {
     $Log$
-    Revision 1.9  2002-10-28 20:59:17  mazen
+    Revision 1.10  2002-11-05 16:15:00  mazen
+    *** empty log message ***
+
+    Revision 1.9  2002/10/28 20:59:17  mazen
     * TOpSize values changed S_L --> S_SW
 
     Revision 1.8  2002/10/22 13:43:01  mazen

+ 5 - 2
compiler/sparc/cgcpu.pas

@@ -237,7 +237,7 @@ procedure tcgSPARC.a_load_const_ref(list:TAasmOutput;size:tcgsize;a:aword;CONST
   END;
 procedure tcgSPARC.a_load_reg_ref(list:TAasmOutput;size:TCGSize;reg:tregister;CONST ref:TReference);
   BEGIN
-    list.concat(taicpu.op_reg_ref(A_LD,reg,ref));
+    list.concat(taicpu.op_reg_ref(A_ST,reg,ref));
   END;
 procedure tcgSPARC.a_load_ref_reg(list:TAasmOutput;size:tcgsize;const ref:TReference;reg:tregister);
   var
@@ -1254,7 +1254,10 @@ BEGIN
 END.
 {
   $Log$
-  Revision 1.20  2002-11-03 20:22:40  mazen
+  Revision 1.21  2002-11-05 16:15:00  mazen
+  *** empty log message ***
+
+  Revision 1.20  2002/11/03 20:22:40  mazen
   * parameter handling updated
 
   Revision 1.19  2002/10/28 20:59:17  mazen

+ 11 - 6
compiler/sparc/naddcpu.pas

@@ -142,7 +142,8 @@ 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);
+             // 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));
             { newly swapped also set swapped flag }
             location_swap(left.location,right.location);
             toggleflag(nf_swaped);
@@ -152,7 +153,8 @@ procedure TSparcAddNode.emit_generic_code(op:TAsmOp;OpSize:TOpSize;unsigned,extr
             if extra_not
             then
               emit_reg(A_NOT,S_L,right.location.register);
-            emit_reg_reg(op,opsize,right.location.register,left.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));
           end;
       end
     ELSE
@@ -238,11 +240,11 @@ procedure TSparcAddNode.emit_op_right_left(op:TAsmOp;OpSize:TOpsize);
     with exprasmlist do
       case right.location.loc of
         LOC_REGISTER,LOC_CREGISTER:
-          concat(taicpu.op_reg_reg(op,right.location.register,left.location.register));
+          concat(taicpu.op_reg_reg_reg(op,S_W,right.location.register,left.location.register,left.location.register));
         LOC_REFERENCE,LOC_CREFERENCE :
-          concat(taicpu.op_ref_reg(op,right.location.reference,left.location.register));
+          concat(taicpu.op_reg_ref_reg(op,S_W,left.location.register,right.location.reference,left.location.register));
         LOC_CONSTANT:
-          concat(taicpu.op_const_reg(op,right.location.value,left.location.register));
+          concat(taicpu.op_reg_const_reg(op,S_W,left.location.register,right.location.value,left.location.register));
         else
           InternalError(200203232);
       end;
@@ -526,7 +528,10 @@ begin
 end.
 {
     $Log$
-    Revision 1.5  2002-10-22 13:43:01  mazen
+    Revision 1.6  2002-11-05 16:15:00  mazen
+    *** empty log message ***
+
+    Revision 1.5  2002/10/22 13:43:01  mazen
     - cga.pas redueced to an empty unit
 
     Revision 1.4  2002/10/10 20:23:57  mazen