Win32/SPU: Respect home space / shadow space on the stack frame
Some checks failed
Generate Translation Template / Generate Translation Template (push) Has been cancelled
Build RPCS3 / RPCS3 Linux ${{ matrix.os }} ${{ matrix.compiler }} (/rpcs3/.ci/build-linux-aarch64.sh, gcc, rpcs3/rpcs3-ci-jammy-aarch64:1.6, ubuntu-24.04-arm) (push) Has been cancelled
Build RPCS3 / RPCS3 Linux ${{ matrix.os }} ${{ matrix.compiler }} (/rpcs3/.ci/build-linux.sh, gcc, rpcs3/rpcs3-ci-jammy:1.6, ubuntu-24.04) (push) Has been cancelled
Build RPCS3 / RPCS3 Linux ${{ matrix.os }} ${{ matrix.compiler }} (a1d35836e8d45bfc6f63c26f0a3e5d46ef622fe1, rpcs3/rpcs3-binaries-linux-arm64, /rpcs3/.ci/build-linux-aarch64.sh, clang, rpcs3/rpcs3-ci-jammy-aarch64:1.6, ubuntu-24.04-arm) (push) Has been cancelled
Build RPCS3 / RPCS3 Linux ${{ matrix.os }} ${{ matrix.compiler }} (d812f1254a1157c80fd402f94446310560f54e5f, rpcs3/rpcs3-binaries-linux, /rpcs3/.ci/build-linux.sh, clang, rpcs3/rpcs3-ci-jammy:1.6, ubuntu-24.04) (push) Has been cancelled
Build RPCS3 / RPCS3 Mac ${{ matrix.name }} (51ae32f468089a8169aaf1567de355ff4a3e0842, rpcs3/rpcs3-binaries-mac, arch -X86_64 .ci/build-mac.sh, Intel) (push) Has been cancelled
Build RPCS3 / RPCS3 Mac ${{ matrix.name }} (8e21bdbc40711a3fccd18fbf17b742348b0f4281, rpcs3/rpcs3-binaries-mac-arm64, .ci/build-mac-arm64.sh, Apple Silicon) (push) Has been cancelled
Build RPCS3 / RPCS3 Windows (push) Has been cancelled
Build RPCS3 / RPCS3 Windows Clang (win64, clang, clang64) (push) Has been cancelled
Build RPCS3 / RPCS3 FreeBSD (push) Has been cancelled

This commit is contained in:
Elad 2025-09-19 12:01:23 +03:00 committed by Elad
parent ffeb16fe1e
commit 3e701a743b

View file

@ -305,17 +305,17 @@ DECLARE(spu_runtime::g_gateway) = build_function_asm<spu_function_t>("spu_gatewa
c.push(x86::rdi);
c.push(x86::rbp);
c.push(x86::rbx);
c.sub(x86::rsp, 0xa8);
c.movaps(x86::oword_ptr(x86::rsp, 0x90), x86::xmm15);
c.movaps(x86::oword_ptr(x86::rsp, 0x80), x86::xmm14);
c.movaps(x86::oword_ptr(x86::rsp, 0x70), x86::xmm13);
c.movaps(x86::oword_ptr(x86::rsp, 0x60), x86::xmm12);
c.movaps(x86::oword_ptr(x86::rsp, 0x50), x86::xmm11);
c.movaps(x86::oword_ptr(x86::rsp, 0x40), x86::xmm10);
c.movaps(x86::oword_ptr(x86::rsp, 0x30), x86::xmm9);
c.movaps(x86::oword_ptr(x86::rsp, 0x20), x86::xmm8);
c.movaps(x86::oword_ptr(x86::rsp, 0x10), x86::xmm7);
c.movaps(x86::oword_ptr(x86::rsp, 0), x86::xmm6);
c.sub(x86::rsp, 0xc8);
c.movaps(x86::oword_ptr(x86::rsp, 0xb0), x86::xmm15);
c.movaps(x86::oword_ptr(x86::rsp, 0xa0), x86::xmm14);
c.movaps(x86::oword_ptr(x86::rsp, 0x90), x86::xmm13);
c.movaps(x86::oword_ptr(x86::rsp, 0x80), x86::xmm12);
c.movaps(x86::oword_ptr(x86::rsp, 0x70), x86::xmm11);
c.movaps(x86::oword_ptr(x86::rsp, 0x60), x86::xmm10);
c.movaps(x86::oword_ptr(x86::rsp, 0x50), x86::xmm9);
c.movaps(x86::oword_ptr(x86::rsp, 0x40), x86::xmm8);
c.movaps(x86::oword_ptr(x86::rsp, 0x30), x86::xmm7);
c.movaps(x86::oword_ptr(x86::rsp, 0x20), x86::xmm6);
#else
c.push(x86::rbp);
c.push(x86::r15);
@ -348,17 +348,17 @@ DECLARE(spu_runtime::g_gateway) = build_function_asm<spu_function_t>("spu_gatewa
}
#ifdef _WIN32
c.movaps(x86::xmm6, x86::oword_ptr(x86::rsp, 0));
c.movaps(x86::xmm7, x86::oword_ptr(x86::rsp, 0x10));
c.movaps(x86::xmm8, x86::oword_ptr(x86::rsp, 0x20));
c.movaps(x86::xmm9, x86::oword_ptr(x86::rsp, 0x30));
c.movaps(x86::xmm10, x86::oword_ptr(x86::rsp, 0x40));
c.movaps(x86::xmm11, x86::oword_ptr(x86::rsp, 0x50));
c.movaps(x86::xmm12, x86::oword_ptr(x86::rsp, 0x60));
c.movaps(x86::xmm13, x86::oword_ptr(x86::rsp, 0x70));
c.movaps(x86::xmm14, x86::oword_ptr(x86::rsp, 0x80));
c.movaps(x86::xmm15, x86::oword_ptr(x86::rsp, 0x90));
c.add(x86::rsp, 0xa8);
c.movaps(x86::xmm6, x86::oword_ptr(x86::rsp, 0x20));
c.movaps(x86::xmm7, x86::oword_ptr(x86::rsp, 0x30));
c.movaps(x86::xmm8, x86::oword_ptr(x86::rsp, 0x40));
c.movaps(x86::xmm9, x86::oword_ptr(x86::rsp, 0x50));
c.movaps(x86::xmm10, x86::oword_ptr(x86::rsp, 0x60));
c.movaps(x86::xmm11, x86::oword_ptr(x86::rsp, 0x70));
c.movaps(x86::xmm12, x86::oword_ptr(x86::rsp, 0x80));
c.movaps(x86::xmm13, x86::oword_ptr(x86::rsp, 0x90));
c.movaps(x86::xmm14, x86::oword_ptr(x86::rsp, 0xa0));
c.movaps(x86::xmm15, x86::oword_ptr(x86::rsp, 0xb0));
c.add(x86::rsp, 0xc8);
c.pop(x86::rbx);
c.pop(x86::rbp);
c.pop(x86::rdi);