summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/wasm-interpreter.h2
-rw-r--r--src/wasm-s-parser.h8
2 files changed, 5 insertions, 5 deletions
diff --git a/src/wasm-interpreter.h b/src/wasm-interpreter.h
index b6f77b78d..47a442020 100644
--- a/src/wasm-interpreter.h
+++ b/src/wasm-interpreter.h
@@ -648,7 +648,7 @@ private:
if (curr->type == f32) {
float v = value.reinterpretf32();
if (isnan(v)) {
- return Literal(Literal(value.geti32() | 0x7fc00000).reinterpretf32());
+ return Literal(Literal(value.geti32() | 0x7f800000).reinterpretf32());
}
return Literal(value.reinterpretf32());
} else {
diff --git a/src/wasm-s-parser.h b/src/wasm-s-parser.h
index e3bf07177..d4ec163cf 100644
--- a/src/wasm-s-parser.h
+++ b/src/wasm-s-parser.h
@@ -722,10 +722,10 @@ private:
if (modifier) {
std::istringstream istr(modifier);
istr >> std::hex >> u.pattern;
+ u.pattern |= 0x7f800000;
} else {
- u.pattern = 0;
+ u.pattern = 0x7fc00000;
}
- u.pattern |= 0x7fc00000;
if (negative) u.pattern |= 0x80000000;
if (!isnan(u.f)) u.pattern |= 1;
assert(isnan(u.f));
@@ -740,10 +740,10 @@ private:
if (modifier) {
std::istringstream istr(modifier);
istr >> std::hex >> u.pattern;
+ u.pattern |= 0x7ff0000000000000LL;
} else {
- u.pattern = 0;
+ u.pattern = 0x7ff8000000000000L;
}
- u.pattern |= 0x7ff0000000000000LL;
if (negative) u.pattern |= 0x8000000000000000LL;
if (!isnan(u.d)) u.pattern |= 1;
assert(isnan(u.d));