FastObj update



Hello all,

There are a few changes in this update:
- added FastObj.inc file for define options
- only the header part of the template (for a class) is kept (to save space)
- tuned more the ASM code
- added MMX code: suggested by JiYuan Xie based on fastcode, but much
simplified; in my tests, FPU code was slower than standard "rep movsd" (can
anyone explain?) and I removed it completely. MMX is forced by default (I
think it's available on all machines today); to check it in runtime, remove
"ForceMMX" definition.
- also contributed by JiYuan Xie, added package support. I build a new MM
dll for Delphi 9 (just added fastobj unit to the FastMM provided project and
set to use packages) and it really works! I can even feel some speed
improvement when loading. Attached as precompiled dll.
Other suggestions from JiYuan Xie:
- support for old style object NOT included; I don't feel that 4 bytes per
class worth complicating the code. This doesn't mean that won't be
considered if more people find it useful.
- several patches for some RTL functions have their own unit (fastsys). They
seem to work, but I don't notice speed increase; therefore it's not
automatically applied. Use "AutoPatchRTL" definition or call
fastsys.PatchSystemFunctions.

Posted to .attachments (as well as sourceforge:
http://sourceforge.net/projects/fastcode).
Comments welcome.

Regards,
Gabriel


.