backend_x64/abi: Reversing XMM list leads to incorrect ordering

This commit is contained in:
MerryMage 2016-08-31 23:06:49 +01:00
parent b10c438e8e
commit 702e181b35

View file

@ -91,7 +91,7 @@ void ABI_PopCalleeSaveRegistersAndAdjustStack(Xbyak::CodeGenerator* code, size_t
FrameInfo frame_info = CalculateFrameInfo(num_gprs, num_xmms, frame_size); FrameInfo frame_info = CalculateFrameInfo(num_gprs, num_xmms, frame_size);
size_t xmm_offset = frame_info.xmm_offset; size_t xmm_offset = frame_info.xmm_offset;
for (HostLoc xmm : Common::Reverse(ABI_ALL_CALLEE_SAVE)) { for (HostLoc xmm : ABI_ALL_CALLEE_SAVE) {
if (HostLocIsXMM(xmm)) { if (HostLocIsXMM(xmm)) {
code->movaps(HostLocToXmm(xmm), code->xword[rsp + xmm_offset]); code->movaps(HostLocToXmm(xmm), code->xword[rsp + xmm_offset]);
xmm_offset += XMM_SIZE; xmm_offset += XMM_SIZE;