summaryrefslogtreecommitdiff
path: root/src/binaryen-shell.cpp
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2015-11-27 16:39:05 -0800
committerAlon Zakai <alonzakai@gmail.com>2015-11-27 18:45:24 -0800
commite7461ed17e5f0cc9e49ada34b0fb340dce8e9b49 (patch)
tree49a5810350437931c48612107f9f0694e4b2bc51 /src/binaryen-shell.cpp
parent26842a8da165276fd9f38dc4bab2267269c237a0 (diff)
downloadbinaryen-e7461ed17e5f0cc9e49ada34b0fb340dce8e9b49.tar.gz
binaryen-e7461ed17e5f0cc9e49ada34b0fb340dce8e9b49.tar.bz2
binaryen-e7461ed17e5f0cc9e49ada34b0fb340dce8e9b49.zip
unify convert/compare into unary/binary, and do a pre-pass in s-expression parser for function types, to fix new assertions that notice some missing types
Diffstat (limited to 'src/binaryen-shell.cpp')
-rw-r--r--src/binaryen-shell.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/binaryen-shell.cpp b/src/binaryen-shell.cpp
index 9c1a05447..b2ba51544 100644
--- a/src/binaryen-shell.cpp
+++ b/src/binaryen-shell.cpp
@@ -105,8 +105,9 @@ struct ShellExternalInterface : ModuleInstance::ExternalInterface {
}
break;
}
- case f32: *((float*)(memory+addr)) = value.getf32(); break;
- case f64: *((double*)(memory+addr)) = value.getf64(); break;
+ // write floats carefully, ensuring all bits reach memory
+ case f32: *((int32_t*)(memory+addr)) = value.reinterpreti32(); break;
+ case f64: *((int64_t*)(memory+addr)) = value.reinterpreti64(); break;
default: abort();
}
}