From f8b9c7b2b7760ac9551927fac31bcbf2ba1673d1 Mon Sep 17 00:00:00 2001 From: Yang Liu Date: Thu, 19 Dec 2024 23:20:16 +0800 Subject: [LA64_DYNAREC] A few minor optimizations (#2174) --- src/dynarec/la64/dynarec_la64_0f.c | 6 ++---- src/dynarec/la64/dynarec_la64_f0.c | 3 +-- 2 files changed, 3 insertions(+), 6 deletions(-) (limited to 'src') 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) { -- cgit 1.4.1