mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-05-14 08:12:16 +00:00
Save rest of ymms in SaveContext (#2512)
This commit is contained in:
parent
229740f557
commit
07baf17c2a
1 changed files with 6 additions and 6 deletions
|
@ -225,9 +225,9 @@ static void SaveContext(Xbyak::CodeGenerator& c, bool save_flags = false) {
|
||||||
for (int reg = Xbyak::Operand::RAX; reg <= Xbyak::Operand::R15; reg++) {
|
for (int reg = Xbyak::Operand::RAX; reg <= Xbyak::Operand::R15; reg++) {
|
||||||
c.push(Xbyak::Reg64(reg));
|
c.push(Xbyak::Reg64(reg));
|
||||||
}
|
}
|
||||||
for (int reg = 0; reg <= 7; reg++) {
|
c.lea(rsp, ptr[rsp - 32 * 16]);
|
||||||
c.lea(rsp, ptr[rsp - 32]);
|
for (int reg = 0; reg <= 15; reg++) {
|
||||||
c.vmovdqu(ptr[rsp], Xbyak::Ymm(reg));
|
c.vmovdqu(ptr[rsp + 32 * reg], Xbyak::Ymm(reg));
|
||||||
}
|
}
|
||||||
if (save_flags) {
|
if (save_flags) {
|
||||||
c.pushfq();
|
c.pushfq();
|
||||||
|
@ -241,12 +241,12 @@ static void RestoreContext(Xbyak::CodeGenerator& c, const Xbyak::Operand& dst,
|
||||||
if (restore_flags) {
|
if (restore_flags) {
|
||||||
c.popfq();
|
c.popfq();
|
||||||
}
|
}
|
||||||
for (int reg = 7; reg >= 0; reg--) {
|
for (int reg = 15; reg >= 0; reg--) {
|
||||||
if ((!dst.isXMM() && !dst.isYMM()) || dst.getIdx() != reg) {
|
if ((!dst.isXMM() && !dst.isYMM()) || dst.getIdx() != reg) {
|
||||||
c.vmovdqu(Xbyak::Ymm(reg), ptr[rsp]);
|
c.vmovdqu(Xbyak::Ymm(reg), ptr[rsp + 32 * reg]);
|
||||||
}
|
}
|
||||||
c.lea(rsp, ptr[rsp + 32]);
|
|
||||||
}
|
}
|
||||||
|
c.lea(rsp, ptr[rsp + 32 * 16]);
|
||||||
for (int reg = Xbyak::Operand::R15; reg >= Xbyak::Operand::RAX; reg--) {
|
for (int reg = Xbyak::Operand::R15; reg >= Xbyak::Operand::RAX; reg--) {
|
||||||
if (!dst.isREG() || dst.getIdx() != reg) {
|
if (!dst.isREG() || dst.getIdx() != reg) {
|
||||||
c.pop(Xbyak::Reg64(reg));
|
c.pop(Xbyak::Reg64(reg));
|
||||||
|
|
Loading…
Add table
Reference in a new issue