Browse Source

* several fixes to get further with linux/ppc system unit compilation

florian 23 năm trước cách đây
mục cha
commit
53a0b662b9
6 tập tin đã thay đổi với 49 bổ sung20 xóa
  1. 11 7
      rtl/inc/generic.inc
  2. 13 4
      rtl/inc/genrtti.inc
  3. 8 1
      rtl/inc/wstrings.inc
  4. 5 2
      rtl/linux/syscalls.inc
  5. 7 4
      rtl/powerpc/math.inc
  6. 5 2
      rtl/unix/sysunix.inc

+ 11 - 7
rtl/inc/generic.inc

@@ -86,15 +86,16 @@ procedure FillDWord(var x;count : longint;value : DWord);
 type
   longintarray = array [0..maxlongint div 4] of longint;
 var
-  I : longint;
+  i : longint;
 begin
   if Count<>0 then
    begin
-     I:=Count;
-     while I<>0 do
+     i:=Count;
+     while i<>0 do
       begin
-        longintarray(X)[I-1]:=Value;
-        Dec(I);
+        { range checking must be disabled here }
+        longintarray(x)[i-1]:=value;
+        Dec(i);
       end;
    end;
 end;
@@ -945,7 +946,10 @@ end;
 
 {
   $Log$
-  Revision 1.30  2002-07-29 09:23:11  jonas
+  Revision 1.31  2002-07-29 21:28:16  florian
+    * several fixes to get further with linux/ppc system unit compilation
+
+  Revision 1.30  2002/07/29 09:23:11  jonas
     * fixed some datastructures > 2GB
 
   Revision 1.29  2002/07/28 21:39:28  florian
@@ -1076,4 +1080,4 @@ end;
   Revision 1.2  2000/07/13 11:33:43  michael
   + removed logs
 
-}
+}

+ 13 - 4
rtl/inc/genrtti.inc

@@ -166,7 +166,7 @@ begin
             int_AddRef (Data+Offset,Info);
       end;
     tkDynArray:
-      fpc_dynarray_incr_ref(PPointer(Data)^,TypeInfo);
+      fpc_dynarray_incr_ref(PPointer(Data)^);
 {$ifdef HASINTF}
     tkInterface:
       Intf_Incr_Ref(PPointer(Data)^);
@@ -176,6 +176,12 @@ end;
 {$endif}
 
 
+{$ifdef hascompilerproc}
+{ alias for internal use }
+{ we use another name else the compiler gets puzzled because of the wrong forward def }
+procedure fpc_systemDecRef (Data, TypeInfo : Pointer);saveregisters;[external name 'FPC_DECREF'];
+{$endif compilerproc}
+
 {$ifndef FPC_SYSTEM_HAS_FPC_DECREF}
 
 Procedure fpc_DecRef (Data, TypeInfo : Pointer);saveregisters;[Public,alias : 'FPC_DECREF'];  {$ifdef hascompilerproc} compilerproc; {$endif}
@@ -206,7 +212,7 @@ begin
          Count:=PArrayRec(Temp)^.Count;  // get element Count
          TInfo:=PArrayRec(Temp)^.Info;   // Get element info
          For I:=0 to Count-1 do
-           fpc_DecRef (Data+(I*size),TInfo);
+           fpc_systemDecRef (Data+(I*size),TInfo);
       end;
     tkrecord:
       begin
@@ -217,7 +223,7 @@ begin
       Count:=PRecRec(Temp)^.Count;  // get element Count
       For I:=1 to count do
         With PRecRec(Temp)^.elements[I] do
-          fpc_DecRef (Data+Offset,Info);
+          fpc_systemDecRef (Data+Offset,Info);
       end;
     tkDynArray:
       fpc_dynarray_decr_ref(PPointer(Data)^,TypeInfo);
@@ -241,7 +247,10 @@ procedure fpc_finalize_array(data,typeinfo : pointer;count,size : longint); [Pub
 
 {
  $Log$
- Revision 1.12  2002-04-25 20:14:57  peter
+ Revision 1.13  2002-07-29 21:28:17  florian
+   * several fixes to get further with linux/ppc system unit compilation
+
+ Revision 1.12  2002/04/25 20:14:57  peter
    * updated compilerprocs
    * incr ref count has now a value argument instead of var
 

+ 8 - 1
rtl/inc/wstrings.inc

@@ -203,6 +203,10 @@ Begin
   inclocked(PWideRec(S-WideFirstOff)^.Ref);
 end;
 
+{$ifdef hascompilerproc}
+{ alias for internal use }
+Procedure fpc_WideStr_Incr_Ref (S : Pointer);saveregisters;[external name 'FPC_WIDESTR_INCR_REF'];
+{$endif compilerproc}
 
 function fpc_WideStr_To_ShortStr (high_of_res: longint;const S2 : WideString): shortstring;[Public, alias: 'FPC_WIDESTR_TO_SHORTSTR'];  {$ifdef hascompilerproc} compilerproc; {$endif}
 {
@@ -849,7 +853,10 @@ end;
 
 {
   $Log$
-  Revision 1.17  2002-04-26 15:19:05  peter
+  Revision 1.18  2002-07-29 21:28:17  florian
+    * several fixes to get further with linux/ppc system unit compilation
+
+  Revision 1.17  2002/04/26 15:19:05  peter
     * use saveregisters for incr routines, saves also problems with
       the optimizer
 

+ 5 - 2
rtl/linux/syscalls.inc

@@ -558,7 +558,10 @@ end;
 
 {
   $Log$
-  Revision 1.6  2002-07-28 20:43:48  florian
+  Revision 1.7  2002-07-29 21:28:17  florian
+    * several fixes to get further with linux/ppc system unit compilation
+
+  Revision 1.6  2002/07/28 20:43:48  florian
     * several fixes for linux/powerpc
     * several fixes to MT
 
@@ -569,4 +572,4 @@ end;
     * merge unix updates from the 1.0 branch, mostly related to the
       solaris target
 
-}
+}

+ 7 - 4
rtl/powerpc/math.inc

@@ -26,8 +26,8 @@
         pi := 3.14159265358979320;
       end;
 
-    { $define FPC_SYSTEM_HAS_ABS}
-    // function abs(d : extended) : extended;[internproc:in_abs_extended];
+    {$define FPC_SYSTEM_HAS_ABS}
+    function abs(d : extended) : extended;[internproc:in_abs_extended];
 
     {$define FPC_SYSTEM_HAS_SQR}
     function sqr(d : extended) : extended;[internproc:in_sqr_extended];
@@ -205,7 +205,7 @@
                          Int to real helpers
  ****************************************************************************}
 
-function fpc_int64_to_real(i: int64): double; compilerproc;
+function fpc_int64_to_double(i: int64): double; compilerproc;
 assembler;
 { input: high(i) in r3, low(i) in r4 }
 { output: double(i) in f0            }
@@ -267,7 +267,10 @@ end ['r0','r3','f0','f1','f2','f3'];
 
 {
   $Log$
-  Revision 1.5  2002-07-28 21:39:29  florian
+  Revision 1.6  2002-07-29 21:28:17  florian
+    * several fixes to get further with linux/ppc system unit compilation
+
+  Revision 1.5  2002/07/28 21:39:29  florian
     * made abs a compiler proc if it is generic
 
   Revision 1.4  2002/07/28 20:43:49  florian

+ 5 - 2
rtl/unix/sysunix.inc

@@ -771,7 +771,10 @@ End.
 
 {
   $Log$
-  Revision 1.23  2002-07-28 20:43:49  florian
+  Revision 1.24  2002-07-29 21:28:17  florian
+    * several fixes to get further with linux/ppc system unit compilation
+
+  Revision 1.23  2002/07/28 20:43:49  florian
     * several fixes for linux/powerpc
     * several fixes to MT
 
@@ -854,4 +857,4 @@ End.
   Revision 1.2  2000/07/13 11:33:49  michael
   + removed logs
 
-}
+}