summaryrefslogtreecommitdiff
path: root/src/tools/wasm-shell.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/wasm-shell.cpp')
-rw-r--r--src/tools/wasm-shell.cpp24
1 files changed, 9 insertions, 15 deletions
diff --git a/src/tools/wasm-shell.cpp b/src/tools/wasm-shell.cpp
index e5736a951..b7fde3af6 100644
--- a/src/tools/wasm-shell.cpp
+++ b/src/tools/wasm-shell.cpp
@@ -22,6 +22,7 @@
#include <memory>
+#include "execution-results.h"
#include "pass.h"
#include "shell-interface.h"
#include "support/command-line.h"
@@ -86,19 +87,6 @@ struct Operation {
}
};
-static void verify_result(Literal a, Literal b) {
- if (a == b) return;
- // accept equal nans if equal in all bits
- assert(a.type == b.type);
- if (a.type == f32) {
- assert(a.reinterpreti32() == b.reinterpreti32());
- } else if (a.type == f64) {
- assert(a.reinterpreti64() == b.reinterpreti64());
- } else {
- abort();
- }
-}
-
static void run_asserts(Name moduleName, size_t* i, bool* checked, Module* wasm,
Element* root,
SExpressionWasmBuilder* builder,
@@ -213,11 +201,17 @@ static void run_asserts(Name moduleName, size_t* i, bool* checked, Module* wasm,
->dynCast<Const>()
->value;
std::cerr << "seen " << result << ", expected " << expected << '\n';
- verify_result(expected, result);
+ if (!areBitwiseEqual(expected, result)) {
+ std::cout << "unexpected, should be identical\n";
+ abort();
+ }
} else {
Literal expected;
std::cerr << "seen " << result << ", expected " << expected << '\n';
- verify_result(expected, result);
+ if (!areBitwiseEqual(expected, result)) {
+ std::cout << "unexpected, should be identical\n";
+ abort();
+ }
}
}
if (id == ASSERT_TRAP) assert(trapped);