On Mon Nov 20 17:57:37 2023 +0000, Zebediah Figura wrote:
Actually I think it looks pretty reasonable :-) I'm mildly surprised
that the unallocated ones don't try to go back and fill in the gaps, but that does make our job easier.
They go back and try to fill the gaps! I just failed to see that
calculate_buffer_offset() doesn't fill the gaps like allocate_numeric_registers_for_type() does. Wait, what? When I tested they didn't. I.e. in that example I posted, "b" gets allocated to c2.y.
Oh sorry, you are right, the gaps are only filled in SM1, and not in SM4 nor SM6. So my two misconceptions cancelled each other out ':)
I added the test.