diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/dynarec/arm64/dynarec_arm64_0f.c | 2 | ||||
| -rw-r--r-- | src/dynarec/arm64/dynarec_arm64_avx_0f.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_0f.c b/src/dynarec/arm64/dynarec_arm64_0f.c index 9b890f63..a4cf07ec 100644 --- a/src/dynarec/arm64/dynarec_arm64_0f.c +++ b/src/dynarec/arm64/dynarec_arm64_0f.c @@ -1976,6 +1976,7 @@ uintptr_t dynarec64_0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin INST_NAME("STMXCSR Md"); addr = geted(dyn, addr, ninst, nextop, &ed, x2, &fixedaddress, &unscaled, 0xfff<<2, 3, rex, NULL, 0, 0); LDRw_U12(x4, xEmu, offsetof(x64emu_t, mxcsr)); + STW(x4, ed, fixedaddress); if(BOX64ENV(sse_flushto0)) { // sync with fpsr, with mask from mxcsr MRS_fpsr(x1); @@ -1987,7 +1988,6 @@ uintptr_t dynarec64_0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin //BFXILw(x3, x4, 7, 6); // this would the mask, but let's ignore that for now BFIw(x4, x1, 0, 6); // inject back the flags } - STW(x4, ed, fixedaddress); break; case 4: INST_NAME("XSAVE Ed"); diff --git a/src/dynarec/arm64/dynarec_arm64_avx_0f.c b/src/dynarec/arm64/dynarec_arm64_avx_0f.c index 9dda9b02..00ecd917 100644 --- a/src/dynarec/arm64/dynarec_arm64_avx_0f.c +++ b/src/dynarec/arm64/dynarec_arm64_avx_0f.c @@ -684,6 +684,7 @@ uintptr_t dynarec64_AVX_0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int INST_NAME("VSTMXCSR Md"); addr = geted(dyn, addr, ninst, nextop, &ed, x2, &fixedaddress, &unscaled, 0xfff<<2, 3, rex, NULL, 0, 0); LDRw_U12(x4, xEmu, offsetof(x64emu_t, mxcsr)); + STW(x4, ed, fixedaddress); if(BOX64ENV(sse_flushto0)) { // sync with fpsr, with mask from mxcsr MRS_fpsr(x1); @@ -695,7 +696,6 @@ uintptr_t dynarec64_AVX_0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int //BFXILw(x3, x4, 7, 6); // this would the mask, but let's ignore that for now BFIw(x4, x1, 0, 6); // inject back the flags } - STW(x4, ed, fixedaddress); break; default: DEFAULT; |