about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/dynarec/dynarec_arm64_helper.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/dynarec/dynarec_arm64_helper.c b/src/dynarec/dynarec_arm64_helper.c
index 7b0cdc90..20512247 100755
--- a/src/dynarec/dynarec_arm64_helper.c
+++ b/src/dynarec/dynarec_arm64_helper.c
@@ -182,6 +182,9 @@ uintptr_t geted32(dynarec_arm_t* dyn, uintptr_t addr, int ninst, uint8_t nextop,
             ADDw_REG(ret, ret, xRIP);
         } else {
             ret = xRAX+(nextop&7)+(rex.b<<3);
+            if(ret==hint) {
+                MOVw_REG(hint, ret);    //to clear upper part
+            }
         }
     } else {
         int64_t i64;
@@ -203,8 +206,9 @@ uintptr_t geted32(dynarec_arm_t* dyn, uintptr_t addr, int ninst, uint8_t nextop,
                 } else {
                     ret = xRAX+(sib&0x07)+(rex.b<<3);
                 }
-            } else
+            } else {
                 ret = xRAX+(nextop&0x07)+(rex.b<<3);
+            }
         } else {
             int64_t sub = (i64<0)?1:0;
             if(sub) i64 = -i64;