On Tue, 23 Apr 2013, Niels Möller wrote:
Martin Storsjö martin@martin.st writes:
With the final two patches I've just sent, all of these pass, both on wine64 and on real windows.
Many thanks for tracking these w64-related bugs down. Do you have a debugging environment for w64, or did you find the bugs be reading the (preprocessed) assembly code?
I have access to a real windows environment as well, where I used gdb to help me track them down, which really helped a lot this time. I've never taken the time to figure out how to use winedbg properly...
Looking at W64_ENTRY, do you remember why the stack allocation for saved xmm registers is done as
sub [$]eval(8 + 16*($2 - 6)), %rsp
Subtracting the extra 8 bytes seems useless; at least I don't see anything stored at that location. I wonder if maybe that was an incomplete attempt at getting a 16-byte aligned pointer for the the xmm stores?
Hmm, yes, I think that might have been the case. So since we can't rely on that being aligned anyway, we could just as well skip the 8 byte offset.
// Martin