mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-20 04:59:26 +02:00
* renamed rol/ror functions into rolbyte/rolword/roldword/rolqword
(and the same for ror), because their operation is very dependent on the operand size, and it's fairly easy to misjudge the bitwidth of the outcome of an expression in Pascal if you are not intimately familiar with the language (or if you don't know the exact types of all involved values in an expression) git-svn-id: trunk@12621 -
This commit is contained in:
parent
1e26e5dd3c
commit
b912e00440
@ -236,19 +236,19 @@ procedure MD4Transform(var Context: TMDContext; Buffer: Pointer);
|
||||
procedure R1(var a: Cardinal; b,c,d,x: Cardinal; s: Byte);
|
||||
// F(x,y,z) = (x and y) or ((not x) and z)
|
||||
begin
|
||||
a := rol(dword(a + {F(b,c,d)}((b and c) or ((not b) and d)) + x), s);
|
||||
a := roldword(dword(a + {F(b,c,d)}((b and c) or ((not b) and d)) + x), s);
|
||||
end;
|
||||
|
||||
procedure R2(var a: Cardinal; b,c,d,x: Cardinal; s: Byte);
|
||||
// G(x,y,z) = (x and y) or (x and z) or (y and z);
|
||||
begin
|
||||
a := rol(dword(a + {G(b,c,d)}((b and c) or (b and d) or (c and d)) + x + $5A827999), s);
|
||||
a := roldword(dword(a + {G(b,c,d)}((b and c) or (b and d) or (c and d)) + x + $5A827999), s);
|
||||
end;
|
||||
|
||||
procedure R3(var a: Cardinal; b,c,d,x: Cardinal; s: Byte);
|
||||
// H(x,y,z) = x xor y xor z
|
||||
begin
|
||||
a := rol(dword(a + {H(b,c,d)}(b xor c xor d) + x + $6ED9EBA1), s);
|
||||
a := roldword(dword(a + {H(b,c,d)}(b xor c xor d) + x + $6ED9EBA1), s);
|
||||
end;
|
||||
|
||||
var
|
||||
@ -292,25 +292,25 @@ procedure MD5Transform(var Context: TMDContext; Buffer: Pointer);
|
||||
procedure R1(var a: Cardinal; b,c,d,x: Cardinal; s: Byte; ac: Cardinal);
|
||||
// F(x,y,z) = (x and y) or ((not x) and z)
|
||||
begin
|
||||
a := b + rol(dword(a + {F(b,c,d)}((b and c) or ((not b) and d)) + x + ac), s);
|
||||
a := b + roldword(dword(a + {F(b,c,d)}((b and c) or ((not b) and d)) + x + ac), s);
|
||||
end;
|
||||
|
||||
procedure R2(var a: Cardinal; b,c,d,x: Cardinal; s: Byte; ac: Cardinal);
|
||||
// G(x,y,z) = (x and z) or (y and (not z))
|
||||
begin
|
||||
a := b + rol(dword(a + {G(b,c,d)}((b and d) or (c and (not d))) + x + ac), s);
|
||||
a := b + roldword(dword(a + {G(b,c,d)}((b and d) or (c and (not d))) + x + ac), s);
|
||||
end;
|
||||
|
||||
procedure R3(var a: Cardinal; b,c,d,x: Cardinal; s: Byte; ac: Cardinal);
|
||||
// H(x,y,z) = x xor y xor z;
|
||||
begin
|
||||
a := b + rol(dword(a + {H(b,c,d)}(b xor c xor d) + x + ac), s);
|
||||
a := b + roldword(dword(a + {H(b,c,d)}(b xor c xor d) + x + ac), s);
|
||||
end;
|
||||
|
||||
procedure R4(var a: Cardinal; b,c,d,x: Cardinal; s: Byte; ac: Cardinal);
|
||||
// I(x,y,z) = y xor (x or (not z));
|
||||
begin
|
||||
a := b + rol(dword(a + {I(b,c,d)}(c xor (b or (not d))) + x + ac), s);
|
||||
a := b + roldword(dword(a + {I(b,c,d)}(c xor (b or (not d))) + x + ac), s);
|
||||
end;
|
||||
|
||||
var
|
||||
|
@ -2048,26 +2048,26 @@ end;
|
||||
{$ifndef FPC_HAS_INTERNAL_ROX_BYTE}
|
||||
{$ifndef FPC_SYSTEM_HAS_ROX_BYTE}
|
||||
|
||||
function Ror(Const AValue : Byte): Byte;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function RorByte(Const AValue : Byte): Byte;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
begin
|
||||
Result:=(AValue shr 1) or (AValue shl 7);
|
||||
end;
|
||||
|
||||
|
||||
function Ror(Const AValue : Byte;Dist : Byte): Byte;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function RorByte(Const AValue : Byte;Dist : Byte): Byte;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
begin
|
||||
Dist:=Dist and 7;
|
||||
Result:=(AValue shr Dist) or (AValue shl (8-Dist));
|
||||
end;
|
||||
|
||||
|
||||
function Rol(Const AValue : Byte): Byte;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function RolByte(Const AValue : Byte): Byte;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
begin
|
||||
Result:=(AValue shl 1) or (AValue shr 7);
|
||||
end;
|
||||
|
||||
|
||||
function Rol(Const AValue : Byte;Dist : Byte): Byte;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function RolByte(Const AValue : Byte;Dist : Byte): Byte;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
begin
|
||||
Dist:=Dist and 7;
|
||||
Result:=(AValue shl Dist) or (AValue shr (8-Dist));
|
||||
@ -2079,26 +2079,26 @@ function Rol(Const AValue : Byte;Dist : Byte): Byte;{$ifdef SYSTEMINLINE}inline;
|
||||
{$ifndef FPC_HAS_INTERNAL_ROX_WORD}
|
||||
{$ifndef FPC_SYSTEM_HAS_ROX_WORD}
|
||||
|
||||
function Ror(Const AValue : Word): Word;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function RorWord(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}
|
||||
function RorWord(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}
|
||||
function RolWord(Const AValue : Word): Word;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
begin
|
||||
Result:=(AValue shl 1) or (AValue shr 15);
|
||||
end;
|
||||
|
||||
|
||||
function Rol(Const AValue : Word;Dist : Byte): Word;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function RolWord(Const AValue : Word;Dist : Byte): Word;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
begin
|
||||
Dist:=Dist and 15;
|
||||
Result:=(AValue shl Dist) or (AValue shr (16-Dist));
|
||||
@ -2110,26 +2110,26 @@ function Rol(Const AValue : Word;Dist : Byte): Word;{$ifdef SYSTEMINLINE}inline;
|
||||
{$ifndef FPC_HAS_INTERNAL_ROX_DWORD}
|
||||
{$ifndef FPC_SYSTEM_HAS_ROX_DWORD}
|
||||
|
||||
function Ror(Const AValue : DWord): DWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function RorDWord(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}
|
||||
function RorDWord(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}
|
||||
function RolDWord(Const AValue : DWord): DWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
begin
|
||||
Result:=(AValue shl 1) or (AValue shr 31);
|
||||
end;
|
||||
|
||||
|
||||
function Rol(Const AValue : DWord;Dist : Byte): DWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function RolDWord(Const AValue : DWord;Dist : Byte): DWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
begin
|
||||
Dist:=Dist and 31;
|
||||
Result:=(AValue shl Dist) or (AValue shr (32-Dist));
|
||||
@ -2141,26 +2141,26 @@ function Rol(Const AValue : DWord;Dist : Byte): DWord;{$ifdef SYSTEMINLINE}inlin
|
||||
{$ifndef FPC_HAS_INTERNAL_ROX_QWORD}
|
||||
{$ifndef FPC_SYSTEM_HAS_ROX_QWORD}
|
||||
|
||||
function Ror(Const AValue : QWord): QWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function RorQWord(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}
|
||||
function RorQWord(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}
|
||||
function RolQWord(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}
|
||||
function RolQWord(Const AValue : QWord;Dist : Byte): QWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
begin
|
||||
Dist:=Dist and 63;
|
||||
Result:=(AValue shl Dist) or (AValue shr (64-Dist));
|
||||
|
@ -640,62 +640,62 @@ function NtoLE(const AValue: QWord): QWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
{$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 RorByte(Const AValue : Byte): Byte;[internproc:fpc_in_ror_x];
|
||||
function RorByte(Const AValue : Byte;Dist : Byte): Byte;[internproc:fpc_in_ror_x_x];
|
||||
|
||||
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 RolByte(Const AValue : Byte): Byte;[internproc:fpc_in_rol_x];
|
||||
function RolByte(Const AValue : Byte;Dist : Byte): Byte;[internproc:fpc_in_rol_x_x];
|
||||
{$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 RorByte(Const AValue : Byte): Byte;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function RorByte(Const AValue : Byte;Dist : Byte): Byte;{$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}
|
||||
function RolByte(Const AValue : Byte): Byte;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function RolByte(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 RorWord(Const AValue : Word): Word;[internproc:fpc_in_ror_x];
|
||||
function RorWord(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];
|
||||
function RolWord(Const AValue : Word): Word;[internproc:fpc_in_rol_x];
|
||||
function RolWord(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 RorWord(Const AValue : Word): Word;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function RorWord(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}
|
||||
function RolWord(Const AValue : Word): Word;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function RolWord(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 RorDWord(Const AValue : DWord): DWord;[internproc:fpc_in_ror_x];
|
||||
function RorDWord(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];
|
||||
function RolDWord(Const AValue : DWord): DWord;[internproc:fpc_in_rol_x];
|
||||
function RolDWord(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 RorDWord(Const AValue : DWord): DWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function RorDWord(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}
|
||||
function RolDWord(Const AValue : DWord): DWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function RolDWord(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 RorQWord(Const AValue : QWord): QWord;[internproc:fpc_in_ror_x];
|
||||
function RorQWord(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];
|
||||
function RolQWord(Const AValue : QWord): QWord;[internproc:fpc_in_rol_x];
|
||||
function RolQWord(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 RorQWord(Const AValue : QWord): QWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function RorQWord(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}
|
||||
function RolQWord(Const AValue : QWord): QWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function RolQWord(Const AValue : QWord;Dist : Byte): QWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
{$endif FPC_HAS_INTERNAL_ROX_QWORD}
|
||||
|
||||
{$ifndef FPUNONE}
|
||||
|
@ -12,65 +12,65 @@ var
|
||||
begin
|
||||
b1:=1;
|
||||
b2:=3;
|
||||
b1:=ror(b1);
|
||||
b1:=ror(b1,2);
|
||||
b1:=ror(b1,b2);
|
||||
b1:=rorbyte(b1);
|
||||
b1:=rorbyte(b1,2);
|
||||
b1:=rorbyte(b1,b2);
|
||||
if b1<>4 then
|
||||
do_error(1000);
|
||||
|
||||
w1:=1;
|
||||
b2:=3;
|
||||
w1:=ror(w1);
|
||||
w1:=ror(w1,2);
|
||||
w1:=ror(w1,b2);
|
||||
w1:=rorword(w1);
|
||||
w1:=rorword(w1,2);
|
||||
w1:=rorword(w1,b2);
|
||||
if w1<>$400 then
|
||||
do_error(1001);
|
||||
|
||||
d1:=1;
|
||||
b2:=3;
|
||||
d1:=ror(d1);
|
||||
d1:=ror(d1,2);
|
||||
d1:=ror(d1,b2);
|
||||
d1:=rordword(d1);
|
||||
d1:=rordword(d1,2);
|
||||
d1:=rordword(d1,b2);
|
||||
if d1<>$4000000 then
|
||||
do_error(1002);
|
||||
|
||||
q1:=1;
|
||||
b2:=3;
|
||||
q1:=ror(q1);
|
||||
q1:=ror(q1,2);
|
||||
q1:=ror(q1,b2);
|
||||
q1:=rorqword(q1);
|
||||
q1:=rorqword(q1,2);
|
||||
q1:=rorqword(q1,b2);
|
||||
if q1<>$400000000000000 then
|
||||
do_error(1003);
|
||||
|
||||
b1:=1;
|
||||
b2:=3;
|
||||
b1:=rol(b1);
|
||||
b1:=rol(b1,2);
|
||||
b1:=rol(b1,b2);
|
||||
b1:=rolbyte(b1);
|
||||
b1:=rolbyte(b1,2);
|
||||
b1:=rolbyte(b1,b2);
|
||||
if b1<>$40 then
|
||||
do_error(2000);
|
||||
|
||||
w1:=$8001;
|
||||
b2:=3;
|
||||
w1:=rol(w1);
|
||||
w1:=rol(w1,2);
|
||||
w1:=rol(w1,b2);
|
||||
w1:=rolword(w1);
|
||||
w1:=rolword(w1,2);
|
||||
w1:=rolword(w1,b2);
|
||||
if w1<>$60 then
|
||||
do_error(2001);
|
||||
|
||||
d1:=$80000001;
|
||||
b2:=3;
|
||||
d1:=rol(d1);
|
||||
d1:=rol(d1,2);
|
||||
d1:=rol(d1,b2);
|
||||
d1:=roldword(d1);
|
||||
d1:=roldword(d1,2);
|
||||
d1:=roldword(d1,b2);
|
||||
if d1<>$60 then
|
||||
do_error(2002);
|
||||
|
||||
q1:=$8000000000000001;
|
||||
b2:=3;
|
||||
q1:=rol(q1);
|
||||
q1:=rol(q1,2);
|
||||
q1:=rol(q1,b2);
|
||||
q1:=rolqword(q1);
|
||||
q1:=rolqword(q1,2);
|
||||
q1:=rolqword(q1,b2);
|
||||
if q1<>$60 then
|
||||
do_error(2003);
|
||||
|
||||
|
@ -13,50 +13,50 @@ var
|
||||
begin
|
||||
b1:=2;
|
||||
b2:=15;
|
||||
b1:=ror(b1,b2);
|
||||
b1:=rorbyte(b1,b2);
|
||||
if b1<>4 then
|
||||
do_error(1000);
|
||||
|
||||
w1:=1;
|
||||
b2:=29;
|
||||
w1:=ror(w1,b2);
|
||||
w1:=rorword(w1,b2);
|
||||
if w1<>$8 then
|
||||
do_error(1001);
|
||||
|
||||
d1:=$400;
|
||||
b2:=60;
|
||||
d1:=ror(d1,b2);
|
||||
d1:=rordword(d1,b2);
|
||||
if d1<>$4000 then
|
||||
do_error(1002);
|
||||
|
||||
q1:=$80000000000;
|
||||
b2:=125;
|
||||
q1:=ror(q1,b2);
|
||||
q1:=rorqword(q1,b2);
|
||||
if q1<>$400000000000 then
|
||||
do_error(1003);
|
||||
|
||||
b1:=$81;
|
||||
b2:=14;
|
||||
b1 := rol(b1, b2);
|
||||
b1 := rolbyte(b1, b2);
|
||||
if (b1 <> $60) then
|
||||
do_error(2000);
|
||||
|
||||
|
||||
w1:=$8001;
|
||||
b2:=22;
|
||||
w1:=rol(w1,b2);
|
||||
w1:=rolword(w1,b2);
|
||||
if w1<>$60 then
|
||||
do_error(2001);
|
||||
|
||||
d1:=$80000001;
|
||||
b2:=38;
|
||||
d1:=rol(d1,b2);
|
||||
d1:=roldword(d1,b2);
|
||||
if d1<>$60 then
|
||||
do_error(2002);
|
||||
|
||||
q1:=$8000000000000001;
|
||||
q1:=qword($8000000000000001);
|
||||
b2:=70;
|
||||
q1:=rol(q1,b2);
|
||||
q1:=rolqword(q1,b2);
|
||||
if q1<>$60 then
|
||||
do_error(2003);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user