diff options
Diffstat (limited to 'src/wasm-shell.cpp')
-rw-r--r-- | src/wasm-shell.cpp | 10 |
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(); |