[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