The word has it FillChar is about the fastest way to fill a patch of memory with bytes of the same value (not zero, for that there's ZeroMemory), but is there an equivalent to fill memory with a sequence of the same (four byte) integer or cardinal value? Something like FillInt or FillLongWord?
3
votes
1 Answers
4
votes
FillDWord is in some Pascal implementations (FreePascal here), don't know if it's in Delphi.
Maybe some simple assembler implementation?
procedure FillDWord( var Destination; Count: Integer; Value: DWord );
assembler; register;
asm
push edi
mov edi, eax // assign Destination
mov eax, ecx // assign Value
mov ecx, edx
rep stosd
pop edi
end;
... or some asm expert could give a better one...
You could also look at the implementation in FreePascal.
ZeroMemory
is not faster thanFillChar
. Look at the implementation ofZeroMemory
in Windows.pas to immediately understand why. – Rob Kennedy