summaryrefslogtreecommitdiff
path: root/src/binaryen-shell.cpp
diff options
context:
space:
mode:
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();
}
}