mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-15 18:19:45 +02:00
* reorganized ror/rol defines
git-svn-id: trunk@11472 -
This commit is contained in:
parent
076df335e8
commit
20e632c8d8
@ -1538,30 +1538,3 @@ end;
|
||||
|
||||
{$endif}
|
||||
|
||||
{$ifdef FPC_HAS_INTERNAL_ROX}
|
||||
{ the i386 cg doesn't support yet directly coded 64 bit rotates }
|
||||
function Ror(Const AValue : QWord): QWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
begin
|
||||
Result:=(AValue shr 1) or (AValue shl 63);
|
||||
end;
|
||||
|
||||
|
||||
function Ror(Const AValue : QWord;Dist : Byte): QWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
begin
|
||||
Dist:=Dist and 63;
|
||||
Result:=(AValue shr Dist) or (AValue shl (64-Dist));
|
||||
end;
|
||||
|
||||
|
||||
function Rol(Const AValue : QWord): QWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
begin
|
||||
Result:=(AValue shl 1) or (AValue shr 63);
|
||||
end;
|
||||
|
||||
|
||||
function Rol(Const AValue : QWord;Dist : Byte): QWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
begin
|
||||
Dist:=Dist and 63;
|
||||
Result:=(AValue shl Dist) or (AValue shr (64-Dist));
|
||||
end;
|
||||
{$endif FPC_HAS_INTERNAL_ROX}
|
||||
|
@ -2045,8 +2045,8 @@ end;
|
||||
|
||||
{$endif FPC_SYSTEM_HAS_MEM_BARRIER}
|
||||
|
||||
{$ifndef FPC_HAS_INTERNAL_ROX}
|
||||
{$ifndef FPC_SYSTEM_HAS_ROX}
|
||||
{$ifndef FPC_HAS_INTERNAL_ROX_BYTE}
|
||||
{$ifndef FPC_SYSTEM_HAS_ROX_BYTE}
|
||||
|
||||
function Ror(Const AValue : Byte): Byte;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
begin
|
||||
@ -2060,45 +2060,6 @@ function Ror(Const AValue : Byte;Dist : Byte): Byte;{$ifdef SYSTEMINLINE}inline;
|
||||
Result:=(AValue shr Dist) or (AValue shl (8-Dist));
|
||||
end;
|
||||
|
||||
|
||||
function Ror(Const AValue : Word): Word;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
begin
|
||||
Result:=(AValue shr 1) or (AValue shl 15);
|
||||
end;
|
||||
|
||||
|
||||
function Ror(Const AValue : Word;Dist : Byte): Word;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
begin
|
||||
Dist:=Dist and 15;
|
||||
Result:=(AValue shr Dist) or (AValue shl (16-Dist));
|
||||
end;
|
||||
|
||||
|
||||
function Ror(Const AValue : DWord): DWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
begin
|
||||
Result:=(AValue shr 1) or (AValue shl 31);
|
||||
end;
|
||||
|
||||
|
||||
function Ror(Const AValue : DWord;Dist : Byte): DWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
begin
|
||||
Dist:=Dist and 31;
|
||||
Result:=(AValue shr Dist) or (AValue shl (32-Dist));
|
||||
end;
|
||||
|
||||
|
||||
function Ror(Const AValue : QWord): QWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
begin
|
||||
Result:=(AValue shr 1) or (AValue shl 63);
|
||||
end;
|
||||
|
||||
|
||||
function Ror(Const AValue : QWord;Dist : Byte): QWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
begin
|
||||
Dist:=Dist and 63;
|
||||
Result:=(AValue shr Dist) or (AValue shl (64-Dist));
|
||||
end;
|
||||
|
||||
|
||||
function Rol(Const AValue : Byte): Byte;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
begin
|
||||
@ -2112,6 +2073,24 @@ function Rol(Const AValue : Byte;Dist : Byte): Byte;{$ifdef SYSTEMINLINE}inline;
|
||||
Result:=(AValue shl Dist) or (AValue shr (8-Dist));
|
||||
end;
|
||||
|
||||
{$endif FPC_SYSTEM_HAS_ROX_BYTE}
|
||||
{$endif FPC_HAS_INTERNAL_ROX_BYTE}
|
||||
|
||||
{$ifndef FPC_HAS_INTERNAL_ROX_WORD}
|
||||
{$ifndef FPC_SYSTEM_HAS_ROX_WORD}
|
||||
|
||||
function Ror(Const AValue : Word): Word;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
begin
|
||||
Result:=(AValue shr 1) or (AValue shl 15);
|
||||
end;
|
||||
|
||||
|
||||
function Ror(Const AValue : Word;Dist : Byte): Word;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
begin
|
||||
Dist:=Dist and 15;
|
||||
Result:=(AValue shr Dist) or (AValue shl (16-Dist));
|
||||
end;
|
||||
|
||||
|
||||
function Rol(Const AValue : Word): Word;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
begin
|
||||
@ -2125,6 +2104,24 @@ function Rol(Const AValue : Word;Dist : Byte): Word;{$ifdef SYSTEMINLINE}inline;
|
||||
Result:=(AValue shl Dist) or (AValue shr (16-Dist));
|
||||
end;
|
||||
|
||||
{$endif FPC_SYSTEM_HAS_ROX_WORD}
|
||||
{$endif FPC_HAS_INTERNAL_ROX_WORD}
|
||||
|
||||
{$ifndef FPC_HAS_INTERNAL_ROX_DWORD}
|
||||
{$ifndef FPC_SYSTEM_HAS_ROX_DWORD}
|
||||
|
||||
function Ror(Const AValue : DWord): DWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
begin
|
||||
Result:=(AValue shr 1) or (AValue shl 31);
|
||||
end;
|
||||
|
||||
|
||||
function Ror(Const AValue : DWord;Dist : Byte): DWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
begin
|
||||
Dist:=Dist and 31;
|
||||
Result:=(AValue shr Dist) or (AValue shl (32-Dist));
|
||||
end;
|
||||
|
||||
|
||||
function Rol(Const AValue : DWord): DWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
begin
|
||||
@ -2138,6 +2135,24 @@ function Rol(Const AValue : DWord;Dist : Byte): DWord;{$ifdef SYSTEMINLINE}inlin
|
||||
Result:=(AValue shl Dist) or (AValue shr (32-Dist));
|
||||
end;
|
||||
|
||||
{$endif FPC_SYSTEM_HAS_ROX_DWORD}
|
||||
{$endif FPC_HAS_INTERNAL_ROX_DWORD}
|
||||
|
||||
{$ifndef FPC_HAS_INTERNAL_ROX_QWORD}
|
||||
{$ifndef FPC_SYSTEM_HAS_ROX_QWORD}
|
||||
|
||||
function Ror(Const AValue : QWord): QWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
begin
|
||||
Result:=(AValue shr 1) or (AValue shl 63);
|
||||
end;
|
||||
|
||||
|
||||
function Ror(Const AValue : QWord;Dist : Byte): QWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
begin
|
||||
Dist:=Dist and 63;
|
||||
Result:=(AValue shr Dist) or (AValue shl (64-Dist));
|
||||
end;
|
||||
|
||||
|
||||
function Rol(Const AValue : QWord): QWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
begin
|
||||
@ -2151,6 +2166,6 @@ function Rol(Const AValue : QWord;Dist : Byte): QWord;{$ifdef SYSTEMINLINE}inlin
|
||||
Result:=(AValue shl Dist) or (AValue shr (64-Dist));
|
||||
end;
|
||||
|
||||
{$endif FPC_SYSTEM_HAS_ROX}
|
||||
{$endif FPC_HAS_INTERNAL_ROX}
|
||||
{$endif FPC_SYSTEM_HAS_ROX_QWORD}
|
||||
{$endif FPC_HAS_INTERNAL_ROX_QWORD}
|
||||
|
||||
|
@ -609,55 +609,74 @@ function NtoLE(const AValue: Int64): Int64;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function NtoLE(const AValue: QWord): QWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
|
||||
{$ifdef FPC_HAS_INTERNAL_ROX}
|
||||
{$if defined(cpux86_64) or defined(cpui386)}
|
||||
{$define FPC_HAS_INTERNAL_ROX_BYTE}
|
||||
{$define FPC_HAS_INTERNAL_ROX_WORD}
|
||||
{$define FPC_HAS_INTERNAL_ROX_DWORD}
|
||||
{$endif defined(cpux86_64) or defined(cpui386)}
|
||||
{$if defined(cpux86_64)}
|
||||
{$define FPC_HAS_INTERNAL_ROX_QWORD}
|
||||
{$endif defined(cpux86_64)}
|
||||
{$endif FPC_HAS_INTERNAL_ROX}
|
||||
|
||||
{$ifdef FPC_HAS_INTERNAL_ROX_BYTE}
|
||||
function Ror(Const AValue : Byte): Byte;[internproc:fpc_in_ror_x];
|
||||
function Ror(Const AValue : Byte;Dist : Byte): Byte;[internproc:fpc_in_ror_x_x];
|
||||
function Ror(Const AValue : Word): Word;[internproc:fpc_in_ror_x];
|
||||
function Ror(Const AValue : Word;Dist : Byte): Word;[internproc:fpc_in_ror_x_x];
|
||||
function Ror(Const AValue : DWord): DWord;[internproc:fpc_in_ror_x];
|
||||
function Ror(Const AValue : DWord;Dist : Byte): DWord;[internproc:fpc_in_ror_x_x];
|
||||
{ the i386 cg doesn't support yet directly coded 64 bit rotates }
|
||||
{$ifndef cpui386}
|
||||
function Ror(Const AValue : QWord): QWord;[internproc:fpc_in_ror_x];
|
||||
function Ror(Const AValue : QWord;Dist : Byte): QWord;[internproc:fpc_in_ror_x_x];
|
||||
{$else cpui386}
|
||||
function Ror(Const AValue : QWord): QWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function Ror(Const AValue : QWord;Dist : Byte): QWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
{$endif cpui386}
|
||||
|
||||
function Rol(Const AValue : Byte): Byte;[internproc:fpc_in_rol_x];
|
||||
function Rol(Const AValue : Byte;Dist : Byte): Byte;[internproc:fpc_in_rol_x_x];
|
||||
function Rol(Const AValue : Word): Word;[internproc:fpc_in_rol_x];
|
||||
function Rol(Const AValue : Word;Dist : Byte): Word;[internproc:fpc_in_rol_x_x];
|
||||
function Rol(Const AValue : DWord): DWord;[internproc:fpc_in_rol_x];
|
||||
function Rol(Const AValue : DWord;Dist : Byte): DWord;[internproc:fpc_in_rol_x_x];
|
||||
{ the i386 cg doesn't support yet directly coded 64 bit rotates }
|
||||
{$ifndef cpui386}
|
||||
function Rol(Const AValue : QWord): QWord;[internproc:fpc_in_rol_x];
|
||||
function Rol(Const AValue : QWord;Dist : Byte): QWord;[internproc:fpc_in_rol_x_x];
|
||||
{$else cpui386}
|
||||
function Rol(Const AValue : QWord): QWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function Rol(Const AValue : QWord;Dist : Byte): QWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
{$endif cpui386}
|
||||
|
||||
{$else FPC_HAS_INTERNAL_ROX}
|
||||
{$else FPC_HAS_INTERNAL_ROX_BYTE}
|
||||
function Ror(Const AValue : Byte): Byte;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function Ror(Const AValue : Byte;Dist : Byte): Byte;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function Ror(Const AValue : Word): Word;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function Ror(Const AValue : Word;Dist : Byte): Word;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function Ror(Const AValue : DWord): DWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function Ror(Const AValue : DWord;Dist : Byte): DWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function Ror(Const AValue : QWord): QWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function Ror(Const AValue : QWord;Dist : Byte): QWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
|
||||
function Rol(Const AValue : Byte): Byte;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function Rol(Const AValue : Byte;Dist : Byte): Byte;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
{$endif FPC_HAS_INTERNAL_ROX_BYTE}
|
||||
|
||||
|
||||
{$ifdef FPC_HAS_INTERNAL_ROX_WORD}
|
||||
function Ror(Const AValue : Word): Word;[internproc:fpc_in_ror_x];
|
||||
function Ror(Const AValue : Word;Dist : Byte): Word;[internproc:fpc_in_ror_x_x];
|
||||
|
||||
function Rol(Const AValue : Word): Word;[internproc:fpc_in_rol_x];
|
||||
function Rol(Const AValue : Word;Dist : Byte): Word;[internproc:fpc_in_rol_x_x];
|
||||
{$else FPC_HAS_INTERNAL_ROX_WORD}
|
||||
function Ror(Const AValue : Word): Word;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function Ror(Const AValue : Word;Dist : Byte): Word;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
|
||||
function Rol(Const AValue : Word): Word;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function Rol(Const AValue : Word;Dist : Byte): Word;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
{$endif FPC_HAS_INTERNAL_ROX_WORD}
|
||||
|
||||
|
||||
{$ifdef FPC_HAS_INTERNAL_ROX_DWORD}
|
||||
function Ror(Const AValue : DWord): DWord;[internproc:fpc_in_ror_x];
|
||||
function Ror(Const AValue : DWord;Dist : Byte): DWord;[internproc:fpc_in_ror_x_x];
|
||||
|
||||
function Rol(Const AValue : DWord): DWord;[internproc:fpc_in_rol_x];
|
||||
function Rol(Const AValue : DWord;Dist : Byte): DWord;[internproc:fpc_in_rol_x_x];
|
||||
{$else FPC_HAS_INTERNAL_ROX_DWORD}
|
||||
function Ror(Const AValue : DWord): DWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function Ror(Const AValue : DWord;Dist : Byte): DWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
|
||||
function Rol(Const AValue : DWord): DWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function Rol(Const AValue : DWord;Dist : Byte): DWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
{$endif FPC_HAS_INTERNAL_ROX_DWORD}
|
||||
|
||||
|
||||
{$ifdef FPC_HAS_INTERNAL_ROX_QWORD}
|
||||
function Ror(Const AValue : QWord): QWord;[internproc:fpc_in_ror_x];
|
||||
function Ror(Const AValue : QWord;Dist : Byte): QWord;[internproc:fpc_in_ror_x_x];
|
||||
|
||||
function Rol(Const AValue : QWord): QWord;[internproc:fpc_in_rol_x];
|
||||
function Rol(Const AValue : QWord;Dist : Byte): QWord;[internproc:fpc_in_rol_x_x];
|
||||
{$else FPC_HAS_INTERNAL_ROX_QWORD}
|
||||
function Ror(Const AValue : QWord): QWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function Ror(Const AValue : QWord;Dist : Byte): QWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
|
||||
function Rol(Const AValue : QWord): QWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function Rol(Const AValue : QWord;Dist : Byte): QWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
{$endif FPC_HAS_INTERNAL_ROX}
|
||||
{$endif FPC_HAS_INTERNAL_ROX_QWORD}
|
||||
|
||||
{$ifndef FPUNONE}
|
||||
{ float math routines }
|
||||
|
Loading…
Reference in New Issue
Block a user