made the copy instruction much faster
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Wed, 11 Jan 2023 21:24:40 +0000 (15:24 -0600)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Wed, 11 Jan 2023 21:24:40 +0000 (15:24 -0600)
interpreter/src/vm/vm_instrs.h
shared/lib/linux_x86_64/lib/libovmwasm.so

index 08dd165c44e506f87b4c5880db30be31f87d17a8..4134b73e6cf3a8104fab3236e7d410206790088e 100644 (file)
@@ -222,7 +222,11 @@ OVMI_INSTR_EXEC(copy) {
 
     if (!dest || !src) OVMI_EXCEPTION_HOOK;
 
-    memmove(&memory[dest], &memory[src], count);
+    if (src + count > dest) {
+        memmove(&memory[dest], &memory[src], count);
+    } else {
+        memcpy(&memory[dest], &memory[src], count);
+    }
 
     NEXT_OP;
 }
index 9368eae74de37c5ae3881b88ef51afc83c84d371..5c3fa5e10001fc7bc64e6f5b70f1bea232b118d2 100755 (executable)
Binary files a/shared/lib/linux_x86_64/lib/libovmwasm.so and b/shared/lib/linux_x86_64/lib/libovmwasm.so differ