Przeglądaj źródła

* all A_BL instructions replaced by calls to a_call_name

florian 23 lat temu
rodzic
commit
fa4a4de18c
1 zmienionych plików z 14 dodań i 11 usunięć
  1. 14 11
      compiler/powerpc/cgcpu.pas

+ 14 - 11
compiler/powerpc/cgcpu.pas

@@ -957,11 +957,11 @@ const
              { save floating-point registers
              if (cs_create_pic in aktmoduleswitches) and not(usesgpr) then
                begin
-                  list.concat(taicpu.op_sym_ofs(A_BL,objectlibrary.newasmsymbol('_savefpr_'+tostr(ord(firstregfpu)-ord(R_F14)+14)+'_g'),0));
+                  a_call_name(objectlibrary.newasmsymbol('_savefpr_'+tostr(ord(firstregfpu)-ord(R_F14)+14)+'_g');
                   gotgot:=true;
                end
              else
-               list.concat(taicpu.op_sym_ofs(A_BL,objectlibrary.newasmsymbol('_savefpr_'+tostr(ord(firstregfpu)-ord(R_F14)+14)),0));
+               a_call_name(objectlibrary.newasmsymbol('_savefpr_'+tostr(ord(firstregfpu)-ord(R_F14)+14));
              }
              for regcounter:=firstregfpu to R_F31 do
                if regcounter in rg.usedbyproc then
@@ -981,11 +981,11 @@ const
              {
              if cs_create_pic in aktmoduleswitches then
                begin
-                  list.concat(taicpu.op_sym_ofs(A_BL,objectlibrary.newasmsymbol('_savegpr_'+tostr(ord(firstreggpr)-ord(R_14)+14)+'_g'),0));
+                  a_call_name(objectlibrary.newasmsymbol('_savegpr_'+tostr(ord(firstreggpr)-ord(R_14)+14)+'_g');
                   gotgot:=true;
                end
              else
-               list.concat(taicpu.op_sym_ofs(A_BL,objectlibrary.newasmsymbol('_savegpr_'+tostr(ord(firstreggpr)-ord(R_14)+14)),0))
+               a_call_name(objectlibrary.newasmsymbol('_savegpr_'+tostr(ord(firstreggpr)-ord(R_14)+14))
              }
              reference_reset_base(href,R_11,-(ord(R_31)-ord(firstreggpr)+1)*4);
              list.concat(taicpu.op_reg_ref(A_STMW,firstreggpr,href));
@@ -1060,7 +1060,7 @@ const
              { restore gprs }
              { at least for now we use LMW }
              {
-             list.concat(taicpu.op_sym_ofs(A_BL,objectlibrary.newasmsymbol('_restgpr_14'),0));
+             a_call_name(objectlibrary.newasmsymbol('_restgpr_14');
              }
              reference_reset_base(href,R_11,-(ord(R_31)-ord(firstreggpr)+1)*4);
              list.concat(taicpu.op_reg_ref(A_LMW,firstreggpr,href));
@@ -1073,12 +1073,12 @@ const
              list.concat(taicpu.op_reg_reg_const(A_ADDI,R_11,R_11,(ord(R_F31)-ord(firstregfpu)+1)*8));
              {
              if (procinfo.flags and pi_do_call)<>0 then
-               list.concat(taicpu.op_sym_ofs(A_BL,objectlibrary.newasmsymbol('_restfpr_'+tostr(ord(firstregfpu)-ord(R_F14)+14)+
-                 '_x'),0))
+               a_call_name(objectlibrary.newasmsymbol('_restfpr_'+tostr(ord(firstregfpu)-ord(R_F14)+14)+
+                 '_x')
              else
                { leaf node => lr haven't to be restored }
-               list.concat(taicpu.op_sym_ofs(A_BL,objectlibrary.newasmsymbol('_restfpr_'+tostr(ord(firstregfpu)-ord(R_F14)+14)+
-                 '_l'),0));
+               a_call_name('_restfpr_'+tostr(ord(firstregfpu)-ord(R_F14)+14)+
+                 '_l');
              genret:=false;
              }
           end;
@@ -1125,7 +1125,7 @@ const
         a_reg_dealloc(list,R_0);
         { save floating-point registers }
         { !!! has to be optimized: only save registers that are used }
-        list.concat(taicpu.op_sym_ofs(A_BL,objectlibrary.newasmsymbol('_savef14'),0));
+        a_call_name(list,'_savef14');
         { save gprs in gpr save area }
         { !!! has to be optimized: only save registers that are used }
         reference_reset_base(href,STACK_POINTER_REG,-220);
@@ -1704,7 +1704,10 @@ begin
 end.
 {
   $Log$
-  Revision 1.59  2002-10-02 13:24:58  jonas
+  Revision 1.60  2002-10-02 21:49:51  florian
+    * all A_BL instructions replaced by calls to a_call_name
+
+  Revision 1.59  2002/10/02 13:24:58  jonas
     * changed a_call_* so that no superfluous code is generated anymore
 
   Revision 1.58  2002/09/17 18:54:06  jonas