summaryrefslogtreecommitdiff
path: root/test/wasm2asm.asserts.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/wasm2asm.asserts.js')
-rw-r--r--test/wasm2asm.asserts.js45
1 files changed, 43 insertions, 2 deletions
diff --git a/test/wasm2asm.asserts.js b/test/wasm2asm.asserts.js
index 0b347b02c..a79b4dc7a 100644
--- a/test/wasm2asm.asserts.js
+++ b/test/wasm2asm.asserts.js
@@ -70,13 +70,22 @@ function asmFunc(global, env, buffer) {
return ((4294967295 << (k & 31 | 0) | 0) & x | 0) >>> (k & 31 | 0) | 0 | (((4294967295 >>> (32 - (k & 31 | 0) | 0) | 0) & x | 0) << (32 - (k & 31 | 0) | 0) | 0) | 0 | 0;
}
+ function __wasm_fetch_high_bits() {
+ return i64toi32_i32$HIGH_BITS | 0;
+ }
+
return {
empty: $0,
add: $1,
- div_s: $2
+ div_s: $2,
+ __wasm_fetch_high_bits: __wasm_fetch_high_bits
};
}
+var __array_buffer = new ArrayBuffer(65536);
+var HEAP32 = new Int32Array(__array_buffer);
+var HEAPF32 = new Float32Array(__array_buffer);
+var HEAPF64 = new Float64Array(__array_buffer);
var asmModule = asmFunc({
Math: Math,
Int8Array: Int8Array,
@@ -89,7 +98,39 @@ var asmModule = asmFunc({
Float64Array: Float64Array
}, {
-}, new ArrayBuffer(65536));
+}, __array_buffer);
+
+ function f32Equal(a, b) {
+ var i = new Int32Array(1);
+ var f = new Float32Array(i.buffer);
+ f[0] = a;
+ var ai = f[0];
+ f[0] = b;
+ var bi = f[0];
+
+ return (isNaN(a) && isNaN(b)) || a == b;
+ }
+ ;
+
+ function f64Equal(a, b) {
+ var i = new Int32Array(2);
+ var f = new Float64Array(i.buffer);
+ f[0] = a;
+ var ai1 = f[0];
+ var ai2 = f[1];
+ f[0] = b;
+ var bi1 = f[0];
+ var bi2 = f[1];
+
+ return (isNaN(a) && isNaN(b)) || (ai1 == bi1 && ai2 == bi2);
+ }
+ ;
+
+ function i64Equal(actual_lo, expected_lo, expected_hi) {
+ return actual_lo == (expected_lo | 0) &&
+ asmModule.__wasm_fetch_high_bits() == (expected_hi | 0);
+ }
+ ;
function check1() {
var wasm2asm_i32$0 = 0;
asmModule.empty();