[Cpu] Report the flags and Sony stack alias in guest exception contexts
Co-authored-by: Sekai <140012992+SekaixX@users.noreply.github.com>
This commit is contained in:
parent
10254a3c7e
commit
a7bfef97ac
|
|
@ -5405,9 +5405,10 @@ public sealed unsafe partial class DirectExecutionBackend : INativeCpuBackend, I
|
||||||
var rip = hasContinuation ? continuation.Rip : context.Rip;
|
var rip = hasContinuation ? continuation.Rip : context.Rip;
|
||||||
var rsp = hasContinuation ? continuation.Rsp : context[CpuRegister.Rsp];
|
var rsp = hasContinuation ? continuation.Rsp : context[CpuRegister.Rsp];
|
||||||
Write64(mcontext + 0xA0, rip);
|
Write64(mcontext + 0xA0, rip);
|
||||||
Write64(mcontext + 0xB0, hasContinuation ? continuation.Rflags : 0);
|
Write64(mcontext + 0xB0, hasContinuation ? continuation.Rflags : context.Rflags);
|
||||||
Write64(mcontext + 0xB8, rsp);
|
Write64(mcontext + 0xB8, rsp);
|
||||||
Write64(mcontext + 0xC8, 0x480); // sizeof(Orbis mcontext_t)
|
Write64(mcontext + 0xC8, 0x480); // sizeof(Orbis mcontext_t)
|
||||||
|
Write64(mcontext + 0xF8, rsp);
|
||||||
Write64(mcontext + 0x440, hasContinuation ? continuation.FsBase : context.FsBase);
|
Write64(mcontext + 0x440, hasContinuation ? continuation.FsBase : context.FsBase);
|
||||||
Write64(mcontext + 0x448, hasContinuation ? continuation.GsBase : context.GsBase);
|
Write64(mcontext + 0x448, hasContinuation ? continuation.GsBase : context.GsBase);
|
||||||
return context.Memory.TryWrite(address, bytes);
|
return context.Memory.TryWrite(address, bytes);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue