maximmasiutin/FastMM4-AVX

Recommendations for improvement

status-kvo opened this issue · 3 comments

You have a cool revision of the library and I always use it with pleasure even in XE11, but one function is missing, this is the procedure Move.

У вас классная доработка библиотеки и я с удовольствием всегда пользуюсь ее даже в ХЕ11, но не хватает одной функции это процедуры Move

Example

FastMM4.pas

interface
...
type
  TMoveProc = procedure(const ASource; var ADest; ACount: NativeInt);

var
  gMove: TMoveProc;

implementation
...
procedure InitializeBlockTypeSizes;
 ...
  gMove := SmallBlockTypes[LInd].UpsizeMoveProcedure;
...
end;
...
procedure RunInitializationCode;
begin
  gMove := System.Move;
  ...
end;

end.
Example1
  gMove(Source^, Target^, Size);

Thank you! I will add this code replace the system Move to the faster one.

CompareMem it wouldn't be bad either. it wouldn't be bad either. With AVX/AVX2,AVX512 technology

I wanted to add the code to replace System move in FastMM4-AVX, but found out that FastMM4 has only fixed-size move routines, with a minimal granularity of 8 bytes, or I missed something?