From d672700a5951862496ff4c754cf82f18d815c8b9 Mon Sep 17 00:00:00 2001 From: florian Date: Sun, 13 Jul 2008 18:16:24 +0000 Subject: [PATCH] * some avr fixes + cpu16 type defines git-svn-id: trunk@11380 - --- rtl/avr/avr.inc | 4 ++++ rtl/inc/generic.inc | 19 +++++++++++++++++++ rtl/inc/objpas.inc | 6 +++++- rtl/inc/systemh.inc | 22 +++++++++++++++++++++- 4 files changed, 49 insertions(+), 2 deletions(-) diff --git a/rtl/avr/avr.inc b/rtl/avr/avr.inc index c20d7cfa93..06d51b8564 100644 --- a/rtl/avr/avr.inc +++ b/rtl/avr/avr.inc @@ -17,6 +17,10 @@ {$asmmode gas} +Procedure SysInitFPU;{$ifdef SYSTEMINLINE}inline;{$endif} +begin +end; + procedure fpc_cpuinit; begin SysInitFPU; diff --git a/rtl/inc/generic.inc b/rtl/inc/generic.inc index f5811bb31d..b4166332fc 100644 --- a/rtl/inc/generic.inc +++ b/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 diff --git a/rtl/inc/objpas.inc b/rtl/inc/objpas.inc index 85a2e32ec6..3c2ec2ed28 100644 --- a/rtl/inc/objpas.inc +++ b/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; {**************************************************************************** diff --git a/rtl/inc/systemh.inc b/rtl/inc/systemh.inc index 26da4a5d83..9c4fc5cb2b 100644 --- a/rtl/inc/systemh.inc +++ b/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. *)