fix another x86_64 ABI bug
commit2d3458363e4e529d80030a648a806fef0c13cf71
authorPhilip <pipcet@gmail.com>
Sun, 26 Apr 2015 17:31:39 +0000 (26 17:31 +0000)
committerPhilip <pipcet@gmail.com>
Sun, 26 Apr 2015 17:31:39 +0000 (26 17:31 +0000)
treeb17582e15d36aad68f41beb8dd63b9b000309f98
parent8d44851d6582ddb753f9cfc273c872a4164189df
fix another x86_64 ABI bug

The old code assumed that if an argument doesn't fit into the available
registers, none of the subsequent arguments do, either. But that's
wrong: passing 7 doubles, then a two-double struct, then another double
should generate code that passes the 9th argument in the 8th register
and the two-double struct on the stack. We now do so.

However, this patch does not yet fix the function calling code to do the
right thing in the same case.
tests/abitest.c
x86_64-gen.c