Working on a simple random number generator, I ran across this issue.
procedure GetHardwareRandom64 {: UInt64}; {$IFDEF BLAISE}assembler; nostackframe;{$ENDIF}
{var
Value: UInt64;
Success: Byte;}
{$asmmode intel} //FPC Defaults to AT&T asm syntax
{$IFNDEF BLAISE}
begin{$ENDIF}
asm
RDRAND RAX
SETC AL
MOV Success, AL
MOV RandSeed64, RAX //Value, RAX
end;
asm
RDTSC //<<Blaise internal assembler does not know this either
SHL RDX, 32
OR RDX, RAX
MOV Value, RDX
end;
Working on a simple random number generator, I ran across this issue.