peter green wrote:
The bad news is that a number of testcases are still failing. Next on
my list is 16 singles.
Ok that was easy, a small logic flaw in my code was preventing a
parameter being correctly assigned to the last available single
precision register when it should have been. And with
Op Sun, 18 Mar 2012, schreef peter green:
My suspiscion was that the compiler was trying to spill but not actually
generating any code to implement the spill.
I added a debug writeln to setbitmap and it does seem to be being called with
both 50,70 and 70,50. Full output is at
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
Op Sat, 17 Mar 2012, schreef peter green:
I don't think my previous mail got through but if it does please disregard
it, my suspiscions as to the cause of the problem were incorrect.
While testing my armhf porting work I came across a case where parameters
were passed incorrectly to a
Daniël Mantione wrote:
Please use the command line option -sr to check the generated code
before register allocation.
Done and attatched.
You can likely find the cause in there.
The code with imaginary registers looks correct to me. It seems to load
each parameter into a seperate even
Op Sun, 18 Mar 2012, schreef peter green:
Daniël Mantione wrote:
Please use the command line option -sr to check the generated code before
register allocation.
Done and attatched.
You can likely find the cause in there.
The code with imaginary registers looks correct to me. It seems to
Then a register is spilled, i.e. replace by a location in memory. This
may be possible without new registers:
mov ireg30d,ireg29d- mov ireg30d,[ebp-40]
... but in some cases a help register is needed:
mov ireg30d,[ebp+20] - mov ireg99d,[ebp+20]
While testing my armhf porting work (which I will send on request, including it
in this mail seems to make it too big for the list to accept) I came across a
case
where parameters were passed incorrectly to a function with a large number of
parameters (14 single, 1 double). Initially I thought