From 604ab2252658e85791bfd3d5a04f546b554f23c3 Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Thu, 23 May 2024 16:31:53 +0200 Subject: [ARM64_DYNAREC] Added 66 D9 /6 and 66 DD /4 /6 opcodes --- src/dynarec/dynarec_native_functions.c | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) (limited to 'src/dynarec/dynarec_native_functions.c') diff --git a/src/dynarec/dynarec_native_functions.c b/src/dynarec/dynarec_native_functions.c index 07dad6bf..1cb2834d 100644 --- a/src/dynarec/dynarec_native_functions.c +++ b/src/dynarec/dynarec_native_functions.c @@ -204,7 +204,18 @@ void native_fsave(x64emu_t* emu, uint8_t* ed) uint8_t* p = ed; p += 28; for (int i=0; i<8; ++i) { - LD2D(p, &ST(i).d); + LD2D(p, &emu->x87[7-i].d); + p+=10; + } +} +void native_fsave16(x64emu_t* emu, uint8_t* ed) +{ + fpu_savenv(emu, (char*)ed, 1); + + uint8_t* p = ed; + p += 14; + for (int i=0; i<8; ++i) { + LD2D(p, &emu->x87[7-i].d); p+=10; } } @@ -215,7 +226,19 @@ void native_frstor(x64emu_t* emu, uint8_t* ed) uint8_t* p = ed; p += 28; for (int i=0; i<8; ++i) { - D2LD(&ST(i).d, p); + D2LD(&emu->x87[7-i].d, p); + p+=10; + } + +} +void native_frstor16(x64emu_t* emu, uint8_t* ed) +{ + fpu_loadenv(emu, (char*)ed, 1); + + uint8_t* p = ed; + p += 14; + for (int i=0; i<8; ++i) { + D2LD(&emu->x87[7-i].d, p); p+=10; } -- cgit 1.4.1