Am 01.11.2017 um 05:58 schrieb J. Gareth Moreton: > I also made versions that use memory fences and other checks such as memory > alignment in order to gain speed > - I've converted them to use the System V ABI of Linux as well, but are > currently completely untested as I > don't have the facilities to yet compile on Linux (they are also even smaller > in code size because you don't > need to push and pop RDI, and the destination (var x) is already stored in > RDI, thereby collapsing each > routine to just 3 instructions (not including the REP prefix)). > > Would it be worth opening up a bug report for this, with the attached > assembler routines as suggestions?
Yes, for sure. > I > haven't worked out how to implement internal functions into the compiler yet, Fill* are not internal functions, so you just have to adapt the system unit. > and I rather clear it with you > guys first before I make such an addition. I had a thought that the simple > routines above could be used for > when compiling for small code size, while larger, more advanced ones are used > for when compiling for speed. I would provide only one version, after all, Fill* is only a very small part of the rtl, so shaving off a few bytes here does not matter and we are not in a 1k contest :) _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel