Re: Fastcode MM Rules

From: Fredrik Lysholm (fredrik.lysholm_at_mogul.com)
Date: 02/10/05


Date: Thu, 10 Feb 2005 17:33:14 +0100

Just like to add that instead of patching the RTL move you could patch a
Move declared in your MM thus you don't have to use the function pointer
approach..

"John O'Harrow" <john@elmcrest.demon.co.uk> wrote in message
news:420b7cae$1@newsgroups.borland.com...
> "Dennis" <marianndkc@home3.gvdnet.dk> wrote in message
> news:420b649d@newsgroups.borland.com...
>> Hi Dennis Landi
>>
>> Disallowing the patching principle will not have to slow down the
>> solutions.
>
> Unfortunately, this is not always the case. The main alternative to
> patching is to use function pointers, which will be marginally slower, and
> the RTL's internal code would not benefit from the improvements. The
> FastMove patching is unusual in that it doesn't simply insert another jump
> call in the RTL's system.move. It also patches the system.move code to
> handle the move selection which helps to speed up small moves.
>
> The version of FastMove going into FreePascal still uses CPUID based
> selction to set variables which are in turn used as indirect jumps within
> a single move procedure. Very neat, but still a few percent slower than
> patching.
>
> regards,
> John
>
>