We have included x64
optimized asm of FillChar()
and Move()
for Win64
- for corresponding compiler targets, i.e. Delphi XE2 and XE3.
It will handle properly cache prefetch and
appropriate SSE2 move
instructions.
The System.pas
unit of Delphi RTL will be patched at startup,
unless the 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 System.pas
.
By the way, the Delphi x64 built-in assembler does not recognize
the 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
mORMot.
Feedback is welcome, as usual!