diff options
-rw-r--r-- | src/wasm-interpreter.h | 2 | ||||
-rw-r--r-- | src/wasm-s-parser.h | 8 |
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)); |