diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/dynarec/la64/dynarec_la64_0f.c | 6 | ||||
| -rw-r--r-- | src/dynarec/la64/dynarec_la64_f0.c | 3 |
2 files changed, 3 insertions, 6 deletions
diff --git a/src/dynarec/la64/dynarec_la64_0f.c b/src/dynarec/la64/dynarec_la64_0f.c index db4c73c1..a9909edd 100644 --- a/src/dynarec/la64/dynarec_la64_0f.c +++ b/src/dynarec/la64/dynarec_la64_0f.c @@ -1093,8 +1093,7 @@ uintptr_t dynarec64_0F(dynarec_la64_t* dyn, uintptr_t addr, uintptr_t ip, int ni if (la64_lbt) { X64_SET_EFLAGS(xZR, X_ZF); } else { - ADDI_D(x3, xZR, ~(1 << F_ZF)); - AND(xFlags, xFlags, x3); + BSTRINS_D(xFlags, xZR, F_ZF, F_ZF); } break; case 0xBD: @@ -1120,8 +1119,7 @@ uintptr_t dynarec64_0F(dynarec_la64_t* dyn, uintptr_t addr, uintptr_t ip, int ni if (la64_lbt) { X64_SET_EFLAGS(xZR, X_ZF); } else { - ADDI_D(x3, xZR, ~(1 << F_ZF)); - AND(xFlags, xFlags, x3); + BSTRINS_D(xFlags, xZR, F_ZF, F_ZF); } if (rex.w) CLZ_D(gd, ed); diff --git a/src/dynarec/la64/dynarec_la64_f0.c b/src/dynarec/la64/dynarec_la64_f0.c index 0178ca00..cd955b88 100644 --- a/src/dynarec/la64/dynarec_la64_f0.c +++ b/src/dynarec/la64/dynarec_la64_f0.c @@ -279,8 +279,7 @@ uintptr_t dynarec64_F0(dynarec_la64_t* dyn, uintptr_t addr, uintptr_t ip, int ni if (la64_lbt) { X64_SET_EFLAGS(xZR, X_ZF); } else { - ADDI_D(x2, xZR, ~(1 << F_ZF)); - AND(xFlags, xFlags, x2); + BSTRINS_D(xFlags, xZR, F_ZF, F_ZF); } } if (rex.w) { |