diff options
author | Alon Zakai <alonzakai@gmail.com> | 2015-11-11 11:38:03 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2015-11-11 11:38:03 -0800 |
commit | 6cbb5943f93e0edcee676569751748547e6ee990 (patch) | |
tree | ac8657f9acbb301129e6d017282138e8a11f13e3 /src | |
parent | be42e377272dbdee8c592706bbce8753aa6539b6 (diff) | |
download | binaryen-6cbb5943f93e0edcee676569751748547e6ee990.tar.gz binaryen-6cbb5943f93e0edcee676569751748547e6ee990.tar.bz2 binaryen-6cbb5943f93e0edcee676569751748547e6ee990.zip |
nan fixes; test suite fully passes
Diffstat (limited to 'src')
-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)); |