On 9.4.2014 г. 16:32, Max Nazhalov wrote:
Wednesday, April 9, 2014, Nikolay Nikolov wrote:
Hmm, then maybe we should support both and add a
{$HUGEPOINTERNORMALIZATION} directive?
Well, I don't know for sure..
But I think introducing huge pointers implies introduction of some minimal
support routines, like [h]move(hugefrom,hugeto,hugelen), [h]fill(..), etc.
Implementation of such routines is quite different among "normalized real"
and "unnormalized common" modes, so going clean way sadly will require twice
effort (and a quadruple maintenance, I suspect.. );

Yes, huge pointers will need RTL helper routines, but IMHO, not that many and they would be relatively simple. I think only pointer arithmetic will need helpers (i.e. adding a pointer with an integer and pointer difference). As for the other routines in the RTL like (h)FillChar and (h)Move, they will have to be made to work with unnormalized huge pointers (in order to support 16-bit protected mode) and this way they will automatically work with normalized huge pointers as well.

Nikolay
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to