Okay, it is quite unlikely that the register allocator itself ignores such an interference, so you may be rigth it tries to spill but nothing happens.

Ok that wasn't the issue but you were right about not being the register allocator.

Turns out the actual cause was a one character typo in armreg.dat (no I didn't introduce it).

S30,$04,$06,$0F,s20,0,0

Should be

S30,$04,$06,$0F,s20,0,0

So it was assigning two different registers as it should but when it came to actually write out the assembler file it wrote out s20 for both of them.

The good news is that all test cases involving up to 15 parameters (including the "14 singles one double" case I was discussing) are now fixed :) The bad news is that a number of testcases are still failing. Next on my list is 16 singles.

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

Reply via email to