[fpc-devel] More on freepascal armhf porting attempt, small numbers of singles work, large numbers are problematic
peter green
plugwash at p10link.net
Sat Mar 17 18:07:47 CET 2012
Jonas Maebe wrote:
>
> You can give S1, S3, S5 etc different super register numbers (> $1F,
> so they don't conflict with the super register numbers for D0..D31).
> As long as you don't change the code in
> tarmcgarm/Tthumb2cgarm.init_register_allocators() to explicitly tell
> the register allocator that it can use these "extra" registers, it
> will won't try to allocate them.
Well I tried this and it works for moderate numbers of parameters but
sometimes breaks as the parameter count grows (the smallest parameter
list on which i'm seeing a failure with a simple test program is 14
singles and one double). From the test results it looks like high
position parameter is getting overwritten by a value intended for low
position parameter.
So I then tried giving them a different subreg number instead of a
different super register number on the theory that it was better that
the code generator thinks two registers conflict when they don't than
for it to think that two registers don't conflict when then do.
Unofortunately that did not improve matters (overwriting was still
happening though it was different overwriting).
I've had a quick look at the assembler output but I really have little
idea where to go from here.
Not sure where to go from here. Any ideas?
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: testfp.dpr
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20120317/448fb40d/attachment.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: testfp-sub.s
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20120317/448fb40d/attachment-0001.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: testfp-sup.s
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20120317/448fb40d/attachment-0002.ksh>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fpcsub.diff
Type: text/x-diff
Size: 50212 bytes
Desc: not available
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20120317/448fb40d/attachment.diff>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fpcsuper.diff
Type: text/x-diff
Size: 51782 bytes
Desc: not available
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20120317/448fb40d/attachment-0001.diff>
More information about the fpc-devel
mailing list