diff options
| author | Yang Liu <liuyang22@iscas.ac.cn> | 2024-12-19 23:20:16 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-12-19 16:20:16 +0100 |
| commit | f8b9c7b2b7760ac9551927fac31bcbf2ba1673d1 (patch) | |
| tree | 53f85c9778dbee9b297ca2610333887e6ae0df8e /src | |
| parent | a8000cb629eae569563b92e1ab7c5929bda3bb5f (diff) | |
| download | box64-f8b9c7b2b7760ac9551927fac31bcbf2ba1673d1.tar.gz box64-f8b9c7b2b7760ac9551927fac31bcbf2ba1673d1.zip | |
[LA64_DYNAREC] A few minor optimizations (#2174)
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) { |