Forráskód Böngészése

+ added Odd(byte) and Odd(shortint) for cpus with 8-bit alu and Odd(word)/
Odd(smallint) for cpus with 8 or 16-bit alu

git-svn-id: trunk@36328 -

nickysn 8 éve
szülő
commit
78a7445751
2 módosított fájl, 38 hozzáadás és 0 törlés
  1. 30 0
      rtl/inc/generic.inc
  2. 8 0
      rtl/inc/systemh.inc

+ 30 - 0
rtl/inc/generic.inc

@@ -1926,6 +1926,36 @@ end;
 
 {$endif not FPC_SYSTEM_HAS_ABS_LONGINT}
 
+{$if defined(CPUINT8)}
+{$ifndef FPC_SYSTEM_HAS_ODD_SHORTINT}
+function odd(l:shortint):Boolean;{$ifdef SYSTEMINLINE}inline;{$endif}
+begin
+   odd:=boolean(l and 1);
+end;
+{$endif ndef FPC_SYSTEM_HAS_ODD_SHORTINT}
+{$ifndef FPC_SYSTEM_HAS_ODD_BYTE}
+function odd(l:byte):Boolean;{$ifdef SYSTEMINLINE}inline;{$endif}
+begin
+   odd:=boolean(l and 1);
+end;
+{$endif ndef FPC_SYSTEM_HAS_ODD_BYTE}
+{$endif CPUINT8}
+
+{$if defined(CPUINT16) or defined(CPUINT8)}
+{$ifndef FPC_SYSTEM_HAS_ODD_SMALLINT}
+function odd(l:smallint):Boolean;{$ifdef SYSTEMINLINE}inline;{$endif}
+begin
+   odd:=boolean(l and 1);
+end;
+{$endif ndef FPC_SYSTEM_HAS_ODD_SMALLINT}
+{$ifndef FPC_SYSTEM_HAS_ODD_WORD}
+function odd(l:word):Boolean;{$ifdef SYSTEMINLINE}inline;{$endif}
+begin
+   odd:=boolean(l and 1);
+end;
+{$endif ndef FPC_SYSTEM_HAS_ODD_WORD}
+{$endif CPUINT16 or CPUINT8}
+
 {$ifndef FPC_SYSTEM_HAS_ODD_LONGINT}
 
 function odd(l:longint):boolean;{$ifdef SYSTEMINLINE}inline;{$endif}

+ 8 - 0
rtl/inc/systemh.inc

@@ -878,6 +878,14 @@ Function abs(l:Int64):Int64;[internconst:fpc_in_const_abs];{$ifdef SYSTEMINLINE}
 Function sqr(l:Longint):Longint;[internconst:fpc_in_const_sqr];{$ifdef SYSTEMINLINE}inline;{$endif}
 Function sqr(l:Int64):Int64;[internconst:fpc_in_const_sqr];{$ifdef SYSTEMINLINE}inline;{$endif}
 Function sqr(l:QWord):QWord;[internconst:fpc_in_const_sqr];{$ifdef SYSTEMINLINE}inline;{$endif}
+{$if defined(CPUINT8)}
+Function odd(l:shortint):Boolean;[internconst:fpc_in_const_odd];{$ifdef SYSTEMINLINE}inline;{$endif}
+Function odd(l:byte):Boolean;[internconst:fpc_in_const_odd];{$ifdef SYSTEMINLINE}inline;{$endif}
+{$endif CPUINT8}
+{$if defined(CPUINT16) or defined(CPUINT8)}
+Function odd(l:smallint):Boolean;[internconst:fpc_in_const_odd];{$ifdef SYSTEMINLINE}inline;{$endif}
+Function odd(l:word):Boolean;[internconst:fpc_in_const_odd];{$ifdef SYSTEMINLINE}inline;{$endif}
+{$endif CPUINT16 or CPUINT8}
 Function odd(l:Longint):Boolean;[internconst:fpc_in_const_odd];{$ifdef SYSTEMINLINE}inline;{$endif}
 Function odd(l:Longword):Boolean;[internconst:fpc_in_const_odd];{$ifdef SYSTEMINLINE}inline;{$endif}
 Function odd(l:Int64):Boolean;[internconst:fpc_in_const_odd];{$ifdef SYSTEMINLINE}inline;{$endif}