Browse Source

* make BSR/BSF return byte, instead of cardinal on 16/8-bit targets

git-svn-id: trunk@26591 -
nickysn 11 years ago
parent
commit
48edf78003
2 changed files with 12 additions and 12 deletions
  1. 6 6
      rtl/inc/generic.inc
  2. 6 6
      rtl/inc/systemh.inc

+ 6 - 6
rtl/inc/generic.inc

@@ -2392,7 +2392,7 @@ function BsrByte(Const AValue: Byte): Byte;
 
 {$ifndef FPC_SYSTEM_HAS_BSF_WORD}
 {$ifndef FPC_HAS_INTERNAL_BSF_WORD}
-function BsfWord(Const AValue: Word): cardinal;
+function BsfWord(Const AValue: Word): {$ifdef CPU16}byte{$else}cardinal{$endif};
   begin
     result:=$ff;
     if lo(AValue)<>0 then
@@ -2405,7 +2405,7 @@ function BsfWord(Const AValue: Word): cardinal;
 
 {$ifndef FPC_SYSTEM_HAS_BSR_WORD}
 {$ifndef FPC_HAS_INTERNAL_BSR_WORD}
-function BsrWord(Const AValue: Word): cardinal;
+function BsrWord(Const AValue: Word): {$ifdef CPU16}byte{$else}cardinal{$endif};
   begin
     if hi(AValue)<>0 then
       result:=BsrByte(hi(AValue))+8
@@ -2417,7 +2417,7 @@ function BsrWord(Const AValue: Word): cardinal;
 
 {$ifndef FPC_HAS_INTERNAL_BSF_DWORD}
 {$ifndef FPC_SYSTEM_HAS_BSF_DWORD}
-function BsfDWord(Const AValue : DWord): cardinal;
+function BsfDWord(Const AValue : DWord): {$ifdef CPU16}byte{$else}cardinal{$endif};
 begin
   result:=$ff;
   if lo(AValue)<>0 then
@@ -2430,7 +2430,7 @@ end;
 
 {$ifndef FPC_HAS_INTERNAL_BSR_DWORD}
 {$ifndef FPC_SYSTEM_HAS_BSR_DWORD}
-function BsrDWord(Const AValue : DWord): cardinal;
+function BsrDWord(Const AValue : DWord): {$ifdef CPU16}byte{$else}cardinal{$endif};
 begin
   if hi(AValue)<>0 then
     result:=BsrWord(hi(AValue))+16
@@ -2442,7 +2442,7 @@ end;
 
 {$ifndef FPC_HAS_INTERNAL_BSF_QWORD}
 {$ifndef FPC_SYSTEM_HAS_BSF_QWORD}
-function BsfQWord(Const AValue : QWord): cardinal;
+function BsfQWord(Const AValue : QWord): {$ifdef CPU16}byte{$else}cardinal{$endif};
   begin
     result:=$ff;
     if lo(AValue) <> 0 then
@@ -2455,7 +2455,7 @@ function BsfQWord(Const AValue : QWord): cardinal;
 
 {$ifndef FPC_HAS_INTERNAL_BSR_QWORD}
 {$ifndef FPC_SYSTEM_HAS_BSR_QWORD}
-function BsrQWord(Const AValue : QWord): cardinal;
+function BsrQWord(Const AValue : QWord): {$ifdef CPU16}byte{$else}cardinal{$endif};
   begin
     if hi(AValue) <> 0 then
       result:=BsrDWord(hi(AValue)) + 32

+ 6 - 6
rtl/inc/systemh.inc

@@ -987,34 +987,34 @@ function BsrByte(Const AValue: Byte): Byte;{$ifdef SYSTEMINLINE}inline;{$endif}
 {$ifdef FPC_HAS_INTERNAL_BSF_WORD}
 function BsfWord(Const AValue: Word): cardinal;[internproc:fpc_in_bsf_x];
 {$else}
-function BsfWord(Const AValue: Word): cardinal;{$ifdef SYSTEMINLINE}inline;{$endif}
+function BsfWord(Const AValue: Word): {$ifdef CPU16}byte{$else}cardinal{$endif};{$ifdef SYSTEMINLINE}inline;{$endif}
 {$endif FPC_HAS_INTERNAL_BSF_WORD}
 {$ifdef FPC_HAS_INTERNAL_BSR_WORD}
 function BsrWord(Const AValue: Word): cardinal;[internproc:fpc_in_bsr_x];
 {$else}
-function BsrWord(Const AValue: Word): cardinal;{$ifdef SYSTEMINLINE}inline;{$endif}
+function BsrWord(Const AValue: Word): {$ifdef CPU16}byte{$else}cardinal{$endif};{$ifdef SYSTEMINLINE}inline;{$endif}
 {$endif FPC_HAS_INTERNAL_BSR_WORD}
 
 {$ifdef FPC_HAS_INTERNAL_BSF_DWORD}
 function BsfDWord(Const AValue : DWord): cardinal;[internproc:fpc_in_bsf_x];
 {$else}
-function BsfDWord(Const AValue : DWord): cardinal;{$ifdef SYSTEMINLINE}inline;{$endif}
+function BsfDWord(Const AValue : DWord): {$ifdef CPU16}byte{$else}cardinal{$endif};{$ifdef SYSTEMINLINE}inline;{$endif}
 {$endif FPC_HAS_INTERNAL_BSF_DWORD}
 {$ifdef FPC_HAS_INTERNAL_BSR_DWORD}
 function BsrDWord(Const AValue : DWord): cardinal;[internproc:fpc_in_bsr_x];
 {$else}
-function BsrDWord(Const AValue : DWord): cardinal;{$ifdef SYSTEMINLINE}inline;{$endif}
+function BsrDWord(Const AValue : DWord): {$ifdef CPU16}byte{$else}cardinal{$endif};{$ifdef SYSTEMINLINE}inline;{$endif}
 {$endif FPC_HAS_INTERNAL_BSR_DWORD}
 
 {$ifdef FPC_HAS_INTERNAL_BSF_QWORD}
 function BsfQWord(Const AValue : QWord): cardinal;[internproc:fpc_in_bsf_x];
 {$else}
-function BsfQWord(Const AValue : QWord): cardinal;{$ifdef SYSTEMINLINE}inline;{$endif}
+function BsfQWord(Const AValue : QWord): {$ifdef CPU16}byte{$else}cardinal{$endif};{$ifdef SYSTEMINLINE}inline;{$endif}
 {$endif FPC_HAS_INTERNAL_BSF_QWORD}
 {$ifdef FPC_HAS_INTERNAL_BSR_QWORD}
 function BsrQWord(Const AValue : QWord): cardinal;[internproc:fpc_in_bsr_x];
 {$else}
-function BsrQWord(Const AValue : QWord): cardinal;{$ifdef SYSTEMINLINE}inline;{$endif}
+function BsrQWord(Const AValue : QWord): {$ifdef CPU16}byte{$else}cardinal{$endif};{$ifdef SYSTEMINLINE}inline;{$endif}
 {$endif FPC_HAS_INTERNAL_BSR_QWORD}
 
 function PopCnt(Const AValue: Byte): Byte;[internproc:fpc_in_popcnt_x];