about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorYang Liu <liuyang22@iscas.ac.cn>2025-10-13 17:26:01 +0800
committerGitHub <noreply@github.com>2025-10-13 11:26:01 +0200
commit524bf210118bb6f1cdfd2a76bd9d0df2134b6ee1 (patch)
tree8ea995faa450df0c3aca8b2c856386dddaddbd68
parent6fbb827955e173c198ca5720fa36176a2490f0ed (diff)
downloadbox64-524bf210118bb6f1cdfd2a76bd9d0df2134b6ee1.tar.gz
box64-524bf210118bb6f1cdfd2a76bd9d0df2134b6ee1.zip
[LA64_DYNAREC] Fixed BEXTR opcode (#3067)
-rw-r--r--src/dynarec/la64/dynarec_la64_avx_0f38.c4
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);