summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/wasm-shell.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/wasm-shell.cpp b/src/wasm-shell.cpp
index 65a838279..97c9c91ed 100644
--- a/src/wasm-shell.cpp
+++ b/src/wasm-shell.cpp
@@ -64,6 +64,16 @@ struct ShellExternalInterface : ModuleInstance::ExternalInterface {
}
break;
}
+ case i64: {
+ switch (load->bytes) {
+ case 1: return load->signed_ ? (int64_t)((int8_t*)memory)[addr] : (int64_t)((uint8_t*)memory)[addr];
+ case 2: return load->signed_ ? (int64_t)((int16_t*)memory)[addr] : (int64_t)((uint16_t*)memory)[addr];
+ case 4: return load->signed_ ? (int64_t)((int32_t*)memory)[addr] : (int64_t)((uint32_t*)memory)[addr];
+ case 8: return load->signed_ ? (int64_t)((int64_t*)memory)[addr] : (int64_t)((uint64_t*)memory)[addr];
+ default: abort();
+ }
+ break;
+ }
case f32: return ((float*)memory)[addr];
case f64: return ((double*)memory)[addr];
default: abort();