diff options
Diffstat (limited to 'src/emu')
| -rw-r--r-- | src/emu/x64emu_private.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/emu/x64emu_private.h b/src/emu/x64emu_private.h index aa6584a7..0c994e59 100644 --- a/src/emu/x64emu_private.h +++ b/src/emu/x64emu_private.h @@ -67,6 +67,9 @@ typedef struct x64emu_s { x87control_t cw; uint16_t dummy_cw; // align... mmxcontrol_t mxcsr; + #ifdef RV64 // it would be better to use a dedicated register for this like arm64 xSavedSP, but we're running of of free registers. + uintptr_t xSPSave; // sp base value of current dynarec frame, used by call/ret optimization to reset stack when unmatch. + #endif fpu_ld_t fpu_ld[8]; // for long double emulation / 80bits fld fst fpu_ll_t fpu_ll[8]; // for 64bits fild / fist sequence fpu_p_reg_t p_regs[8]; @@ -114,6 +117,9 @@ typedef struct x64emu_s { void* init_stack; // initial stack (owned or not) uint32_t size_stack; // stack size (owned or not) JUMPBUFF* jmpbuf; + #ifdef RV64 + uintptr_t old_savedsp; + #endif x64_ucontext_t *uc_link; // to handle setcontext |