about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorLeslie Zhai <zhaixiang@loongson.cn>2024-11-28 15:09:49 +0800
committerGitHub <noreply@github.com>2024-11-28 08:09:49 +0100
commite5b7dfb52468fa6a8a2dd8eab6ea77cdacbe60ff (patch)
tree32746ac48362a0890d4b94b9e78d86aac0ad425a /src
parentde0b6027485ba978d809d51c33b1b0308f80758b (diff)
downloadbox64-e5b7dfb52468fa6a8a2dd8eab6ea77cdacbe60ff.tar.gz
box64-e5b7dfb52468fa6a8a2dd8eab6ea77cdacbe60ff.zip
[LA64_DYNAREC] Added LEA opcode (#2087)
Diffstat (limited to 'src')
-rw-r--r--src/dynarec/la64/dynarec_la64_67.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/dynarec/la64/dynarec_la64_67.c b/src/dynarec/la64/dynarec_la64_67.c
index 969c448b..7be8a16b 100644
--- a/src/dynarec/la64/dynarec_la64_67.c
+++ b/src/dynarec/la64/dynarec_la64_67.c
@@ -144,6 +144,17 @@ uintptr_t dynarec64_67(dynarec_la64_t* dyn, uintptr_t addr, uintptr_t ip, int ni
                 SMWRITELOCK(lock);
             }
             break;
+        case 0x8D:
+            INST_NAME("LEA Gd, Ed");
+            nextop = F8;
+            GETGD;
+            if (MODREG) { // reg <= reg? that's an invalid operation
+                DEFAULT;
+            } else { // mem <= reg
+                addr = geted32(dyn, addr, ninst, nextop, &ed, gd, x1, &fixedaddress, rex, NULL, 0, 0);
+                ZEROUP2(gd, ed);
+            }
+            break;
         case 0xF7:
             nextop = F8;
             switch ((nextop >> 3) & 7) {