From 4407a1755106e56b7172c418e8cd8c0e4be6bf6e Mon Sep 17 00:00:00 2001 From: Yang Liu Date: Fri, 9 Aug 2024 19:31:58 +0800 Subject: [RV64_DYNAREC] Fixed fpu_flags handling and enabled cosim in CI (#1722) * [RV64_DYNAREC] Fixed fpu_flags handling * repeat until-pass --- src/dynarec/rv64/dynarec_rv64_helper.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src') diff --git a/src/dynarec/rv64/dynarec_rv64_helper.c b/src/dynarec/rv64/dynarec_rv64_helper.c index 3461cec0..3d96dbc2 100644 --- a/src/dynarec/rv64/dynarec_rv64_helper.c +++ b/src/dynarec/rv64/dynarec_rv64_helper.c @@ -1160,6 +1160,8 @@ static void x87_unreflectcache(dynarec_rv64_t* dyn, int ninst, int s1, int s2, i ADDI(s2, s2, a); ANDI(s2, s2, 7); SW(s2, xEmu, offsetof(x64emu_t, top)); + // update tags + LH(s1, xEmu, offsetof(x64emu_t, fpu_tags)); if(a>0) { SLLI(s3, xMASK, 16); // 0xffff0000 OR(s1, s1, s3); @@ -1167,6 +1169,7 @@ static void x87_unreflectcache(dynarec_rv64_t* dyn, int ninst, int s1, int s2, i } else { SLLI(s1, s1, -a*2); } + SH(s1, xEmu, offsetof(x64emu_t, fpu_tags)); } } -- cgit 1.4.1