Kaynağa Gözat

* more ppc assembling fixes

florian 23 yıl önce
ebeveyn
işleme
c853f24a86
2 değiştirilmiş dosya ile 17 ekleme ve 5 silme
  1. 11 3
      compiler/powerpc/agppcgas.pas
  2. 6 2
      compiler/powerpc/nppccnv.pas

+ 11 - 3
compiler/powerpc/agppcgas.pas

@@ -126,7 +126,7 @@ unit agppcgas;
         'xer','lr','ctr','fpscr'
       );
 
-     symaddr2str: array[trefsymaddr] of string[2] = ('','ha','l');
+     symaddr2str: array[trefsymaddr] of string[2] = ('','@ha','@l');
 
     function getreferencestring(var ref : treference) : string;
     var
@@ -161,7 +161,12 @@ unit agppcgas;
            if (index=R_NO) and (base<>R_NO) then
              begin
                 if offset=0 then
-                  s:=s+'0';
+                  begin
+                     if assigned(symbol) then
+                       s:=s+'+0'
+                     else
+                       s:=s+'0';
+                  end;
                 s:=s+'('+reg2str[base]+')'
              end
            else if (index<>R_NO) and (base<>R_NO) and (offset=0) then
@@ -346,7 +351,10 @@ begin
 end.
 {
   $Log$
-  Revision 1.11  2002-08-17 18:23:53  florian
+  Revision 1.12  2002-08-18 10:34:30  florian
+    * more ppc assembling fixes
+
+  Revision 1.11  2002/08/17 18:23:53  florian
     * some assembler writer bugs fixed
 
   Revision 1.10  2002/08/12 15:08:44  carl

+ 6 - 2
compiler/powerpc/nppccnv.pas

@@ -243,7 +243,8 @@ implementation
          cg.free_scratch_reg(exprasmlist,tempreg);
          if signed then
            exprasmlist.concat(taicpu.op_reg_reg_const(A_XORIS,valuereg,
-             leftreg,smallint($8000)));
+             { xoris expects a unsigned 16 bit int (FK) }
+             leftreg,$8000));
          inc(ref.offset,4);
          cg.a_load_reg_ref(exprasmlist,OS_32,valuereg,ref);
          dec(ref.offset,4);
@@ -421,7 +422,10 @@ begin
 end.
 {
   $Log$
-  Revision 1.22  2002-08-14 19:30:42  carl
+  Revision 1.23  2002-08-18 10:34:30  florian
+    * more ppc assembling fixes
+
+  Revision 1.22  2002/08/14 19:30:42  carl
     + added fixing because first_in_to_real is now completely generic
 
   Revision 1.21  2002/08/11 06:14:41  florian