summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2015-11-05 11:11:52 -0800
committerAlon Zakai <alonzakai@gmail.com>2015-11-05 11:11:52 -0800
commit01ef67f22fb597b7c749d2c82c93556cc8eea5b2 (patch)
treec267c8e60bd716662a8e268b0600ca6afdcc7b39 /src
parent180e1ce3f8e371fb790d1aa8f810bdff4bcd102d (diff)
downloadbinaryen-01ef67f22fb597b7c749d2c82c93556cc8eea5b2.tar.gz
binaryen-01ef67f22fb597b7c749d2c82c93556cc8eea5b2.tar.bz2
binaryen-01ef67f22fb597b7c749d2c82c93556cc8eea5b2.zip
add i64 load to shell
Diffstat (limited to 'src')
-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();