We have included x64
optimized asm of
Move() for Win64
- for corresponding compiler targets, i.e. Delphi XE2 and XE3.
It will handle properly cache prefetch and appropriate SSE2 move instructions.
System.pas unit of Delphi RTL will be patched at startup,
NOX64PATCHRTL conditional is defined.
Therefore, whole application may benefit for this optimized version.
Performance improvement is noticeable, when compared with the original
pascal-based version included in
By the way, the Delphi x64 built-in assembler does not recognize
movnti opcode... so we had to inline it as plain
db hexadecimal values.
A bit disappointing. Until now, we did not suffer from anything in regard to the x64 compatibility at Delphi level.
No stand-alone unit available yet, since it is included in our
SynCommons.pas shared unit, starting with the 1.18 revision of
Feedback is welcome, as usual!