Explorar o código

* some avr fixes
+ cpu16 type defines

git-svn-id: trunk@11380 -

florian %!s(int64=17) %!d(string=hai) anos
pai
achega
d672700a59
Modificáronse 4 ficheiros con 49 adicións e 2 borrados
  1. 4 0
      rtl/avr/avr.inc
  2. 19 0
      rtl/inc/generic.inc
  3. 5 1
      rtl/inc/objpas.inc
  4. 21 1
      rtl/inc/systemh.inc

+ 4 - 0
rtl/avr/avr.inc

@@ -17,6 +17,10 @@
 
 {$asmmode gas}
 
+Procedure SysInitFPU;{$ifdef SYSTEMINLINE}inline;{$endif}
+begin
+end;
+
 procedure fpc_cpuinit;
 begin
   SysInitFPU;

+ 19 - 0
rtl/inc/generic.inc

@@ -1466,6 +1466,16 @@ end;
 
 {$endif ndef FPC_SYSTEM_HAS_SQR_INT64}
 
+{$ifdef CPU16}
+{$ifndef FPC_SYSTEM_HAS_DECLOCKED_SMALLINT}
+function declocked(var l:smallint):boolean;
+  begin
+    Dec(l);
+    declocked:=(l=0);
+  end;
+{$endif FPC_SYSTEM_HAS_DECLOCKED_SMALLINT}
+{$endif CPU16}
+
 {$ifndef FPC_SYSTEM_HAS_DECLOCKED_LONGINT}
 function declocked(var l:longint):boolean;
   begin
@@ -1484,6 +1494,15 @@ function declocked(var l:int64):boolean;
 {$endif FPC_SYSTEM_HAS_DECLOCKED_INT64}
 
 
+{$ifdef CPU16}
+{$ifndef FPC_SYSTEM_HAS_INCLOCKED_SMALLINT}
+procedure inclocked(var l:smallint);
+  begin
+    Inc(l);
+  end;
+{$endif FPC_SYSTEM_HAS_INCLOCKED_SMALLINT}
+{$endif CPU16}
+
 {$ifndef FPC_SYSTEM_HAS_INCLOCKED_LONGINT}
 procedure inclocked(var l:longint);
   begin

+ 5 - 1
rtl/inc/objpas.inc

@@ -517,7 +517,11 @@
             Offset : Longint;
           end;
 
+{$ifdef CPU16}
+          TRecElemArray = packed array[1..Maxint div sizeof(TRecElem)-1] of TRecElem;
+{$else CPU16}
           TRecElemArray = packed array[1..Maxint] of TRecElem;
+{$endif CPU16}
 
           PRecRec = ^TRecRec;
           TRecRec = record
@@ -787,7 +791,7 @@
       if getinterface(iid,obj) then
         result:=0
       else
-        result:=longint(E_NOINTERFACE); 
+        result:=longint(E_NOINTERFACE);
     end;
 
 {****************************************************************************

+ 21 - 1
rtl/inc/systemh.inc

@@ -40,6 +40,10 @@
   {$goto+}
 {$endif CPUPOWERPC}
 
+{$ifdef CPUAVR}
+  {$goto+}
+{$endif CPUAVR}
+
 
 { needed for insert,delete,readln }
 {$P+}
@@ -274,7 +278,11 @@ Type
 
   UCS4Char            = type 0..$10ffff;
   PUCS4Char           = ^UCS4Char;
+{$ifdef CPU16}
+  TUCS4CharArray      = array[0..32767 div sizeof(UCS4Char)-1] of UCS4Char;
+{$else CPU16}
   TUCS4CharArray      = array[0..$effffff] of UCS4Char;
+{$endif CPU16}
   PUCS4CharArray      = ^TUCS4CharArray;
   UCS4String          = array of UCS4Char;
 
@@ -370,14 +378,26 @@ const
   maxint   = maxsmallint;
 
 type
+{$ifdef CPU16}
+  IntegerArray  = array[0..maxSmallint div sizeof(Integer)-1] of Integer;
+{$else CPU16}
   IntegerArray  = array[0..$effffff] of Integer;
+{$endif CPU16}
   PIntegerArray = ^IntegerArray;
-  PointerArray = array [0..512*1024*1024 - 2] of Pointer;
+{$ifdef CPU16}
+  PointerArray = array [0..32767 div sizeof(Pointer)-1] of Pointer;
+{$else CPU16}
+  PointerArray = array [0..512*1024*1024-2] of Pointer;
+{$endif CPU16}
   PPointerArray = ^PointerArray;
 
   TBoundArray = array of SizeInt;
 
+{$ifdef CPU16}
+  TPCharArray = packed array[0..(MaxSmallint div SizeOf(PChar))-1] of PChar;
+{$else CPU16}
   TPCharArray = packed array[0..(MaxLongint div SizeOf(PChar))-1] of PChar;
+{$endif CPU16}
   PPCharArray = ^TPCharArray;
 
 (* CtrlBreak set to true signalizes Ctrl-Break signal, otherwise Ctrl-C. *)