diff options
| author | Yang Liu <liuyang22@iscas.ac.cn> | 2025-10-13 17:26:01 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-13 11:26:01 +0200 |
| commit | 524bf210118bb6f1cdfd2a76bd9d0df2134b6ee1 (patch) | |
| tree | 8ea995faa450df0c3aca8b2c856386dddaddbd68 | |
| parent | 6fbb827955e173c198ca5720fa36176a2490f0ed (diff) | |
| download | box64-524bf210118bb6f1cdfd2a76bd9d0df2134b6ee1.tar.gz box64-524bf210118bb6f1cdfd2a76bd9d0df2134b6ee1.zip | |
[LA64_DYNAREC] Fixed BEXTR opcode (#3067)
| -rw-r--r-- | src/dynarec/la64/dynarec_la64_avx_0f38.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/dynarec/la64/dynarec_la64_avx_0f38.c b/src/dynarec/la64/dynarec_la64_avx_0f38.c index 78545676..7941abf7 100644 --- a/src/dynarec/la64/dynarec_la64_avx_0f38.c +++ b/src/dynarec/la64/dynarec_la64_avx_0f38.c @@ -207,12 +207,12 @@ uintptr_t dynarec64_AVX_0F38(dynarec_la64_t* dyn, uintptr_t addr, uintptr_t ip, GETVD; BSTRPICK_D(x4, vd, 7, 0); // start BSTRPICK_D(x3, vd, 15, 8); // length - ADDI_D(x5, xZR, 0); + XOR(x5, x5, x5); BEQZ_MARK(x3); MOV64xw(x6, rex.w ? 64 : 32); BGE_MARK(x4, x6); - BLT_MARK(x6, x3); SRLxw(x5, ed, x4); + BLT_MARK(x6, x3); SUBxw(x6, x6, x3); SLLxw(x5, x5, x6); SRLxw(x5, x5, x6); |