about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorYang Liu <liuyang22@iscas.ac.cn>2024-12-23 18:32:35 +0800
committerGitHub <noreply@github.com>2024-12-23 11:32:35 +0100
commit946da430388786a8237e2e7d17c7c2535246963f (patch)
tree6a7d20e47af8797c4a5a93dea6b26b6cc6191f4f
parentcad9450e16a0c145d49a66b275b091db4e8d1308 (diff)
downloadbox64-946da430388786a8237e2e7d17c7c2535246963f.tar.gz
box64-946da430388786a8237e2e7d17c7c2535246963f.zip
[LA64_DYNAREC] Fixed some LBT path issues (#2193)
-rw-r--r--docs/box64.pod2
-rw-r--r--src/dynarec/la64/dynarec_la64_emit_math.c3
2 files changed, 3 insertions, 2 deletions
diff --git a/docs/box64.pod b/docs/box64.pod
index b3ad040c..7957a3d1 100644
--- a/docs/box64.pod
+++ b/docs/box64.pod
@@ -367,7 +367,7 @@ Behavior with FillBlock is not available (FillBlock build Dynarec blocks and is
     * 0 : Dynarec will not wait for FillBlock to ready and use Interpreter instead (might speedup a bit massive multithread or JIT programs)
     * 1 : Dynarec will wait for FillBlock to be ready (Default)
 
-=item B<BOX64_DYNAREC_GDBJIT>=I<0|1>
+=item B<BOX64_DYNAREC_GDBJIT>=I<0|1|2>
 
 The GDBJIT debugging support, only available with the compilation option GDBJIT=ON, enable it with gdb command: jit-reader-load /usr/local/lib/libbox64gdbjitreader.so.
 
diff --git a/src/dynarec/la64/dynarec_la64_emit_math.c b/src/dynarec/la64/dynarec_la64_emit_math.c
index 56c38b8d..bcee5e81 100644
--- a/src/dynarec/la64/dynarec_la64_emit_math.c
+++ b/src/dynarec/la64/dynarec_la64_emit_math.c
@@ -853,7 +853,7 @@ void emit_sbb32(dynarec_la64_t* dyn, int ninst, rex_t rex, int s1, int s2, int s
                 X64_SBC_W(s1, s2);
         }
         MVxw(s1, s3);
-
+        if (!rex.w) ZEROUP(s1);
         IFX (X_PEND)
             SDxw(s1, xEmu, offsetof(x64emu_t, res));
         return;
@@ -1212,6 +1212,7 @@ void emit_adc32(dynarec_la64_t* dyn, int ninst, rex_t rex, int s1, int s2, int s
                 X64_ADC_W(s1, s2);
         }
         MV(s1, s3);
+        if (!rex.w) ZEROUP(s1);
         IFX (X_PEND) {
             SDxw(s1, xEmu, offsetof(x64emu_t, res));
         }