diff options
author | Thomas Lively <7121787+tlively@users.noreply.github.com> | 2020-04-03 23:32:48 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-03 23:32:48 -0700 |
commit | ac8b0b71219a1c96d3dab4c9eeddbb4c8401cd1d (patch) | |
tree | a2b545214afc6cea7109bce6ff2dab53a827a7a9 | |
parent | 80c5164e1f50ed26e6fab373a563fd7a84135429 (diff) | |
download | binaryen-ac8b0b71219a1c96d3dab4c9eeddbb4c8401cd1d.tar.gz binaryen-ac8b0b71219a1c96d3dab4c9eeddbb4c8401cd1d.tar.bz2 binaryen-ac8b0b71219a1c96d3dab4c9eeddbb4c8401cd1d.zip |
Do not emit multivalue events in fuzzer (#2723)
Unless the multivalue feature is enabled. The validation for events
recently changed to disallow events returning multiple items unless
the multivalue feature is enabled, but the fuzzer was not updated
accordingly. This PR fixes the glitch.
-rw-r--r-- | src/tools/fuzzing.h | 5 | ||||
-rw-r--r-- | test/passes/translate-to-fuzz_all-features.txt | 1042 | ||||
-rw-r--r-- | test/passes/translate-to-fuzz_no-fuzz-nans_all-features.txt | 1007 |
3 files changed, 924 insertions, 1130 deletions
diff --git a/src/tools/fuzzing.h b/src/tools/fuzzing.h index 96dd43826..f08fac2d9 100644 --- a/src/tools/fuzzing.h +++ b/src/tools/fuzzing.h @@ -428,8 +428,9 @@ private: Type type = getConcreteType(); std::vector<Type> params; params.push_back(type); - Index numValues = upToSquared(MAX_PARAMS - 1); - for (Index i = 0; i < numValues + 1; i++) { + Index numValues = + wasm.features.hasMultivalue() ? upToSquared(MAX_PARAMS) : upTo(2); + for (Index i = 0; i < numValues; i++) { params.push_back(getConcreteType()); } auto* event = builder.makeEvent(std::string("event$") + std::to_string(i), diff --git a/test/passes/translate-to-fuzz_all-features.txt b/test/passes/translate-to-fuzz_all-features.txt index 3255c757d..9ddd50b71 100644 --- a/test/passes/translate-to-fuzz_all-features.txt +++ b/test/passes/translate-to-fuzz_all-features.txt @@ -1,27 +1,24 @@ (module (type $none_=>_none (func)) - (type $none_=>_i32 (func (result i32))) (type $none_=>_i64 (func (result i64))) + (type $exnref_=>_none (func (param exnref))) + (type $none_=>_f64 (func (result f64))) (type $i32_=>_none (func (param i32))) (type $i64_=>_none (func (param i64))) + (type $i64_exnref_f32_funcref_exnref_=>_none (func (param i64 exnref f32 funcref exnref))) (type $f32_=>_none (func (param f32))) (type $f64_=>_none (func (param f64))) - (type $f64_exnref_=>_none (func (param f64 exnref))) + (type $f64_exnref_exnref_=>_none (func (param f64 exnref exnref))) (type $v128_=>_none (func (param v128))) - (type $anyref_i64_i32_f32_nullref_exnref_=>_none (func (param anyref i64 i32 f32 nullref exnref))) (type $nullref_=>_none (func (param nullref))) - (type $exnref_=>_none (func (param exnref))) - (type $exnref_f32_v128_i32_funcref_=>_none (func (param exnref f32 v128 i32 funcref))) - (type $i64_=>_i32 (func (param i64) (result i32))) - (type $f32_=>_i64 (func (param f32) (result i64))) - (type $none_=>_f32 (func (result f32))) - (type $none_=>_funcref (func (result funcref))) - (type $v128_anyref_i32_i32_=>_funcref (func (param v128 anyref i32 i32) (result funcref))) - (type $f64_i32_i64_f64_f32_=>_anyref (func (param f64 i32 i64 f64 f32) (result anyref))) - (type $nullref_=>_anyref (func (param nullref) (result anyref))) - (type $i32_exnref_exnref_v128_v128_v128_=>_nullref (func (param i32 exnref exnref v128 v128 v128) (result nullref))) - (type $f32_v128_v128_f32_=>_nullref (func (param f32 v128 v128 f32) (result nullref))) - (type $v128_=>_nullref (func (param v128) (result nullref))) + (type $none_=>_i32 (func (result i32))) + (type $f64_=>_v128 (func (param f64) (result v128))) + (type $f64_exnref_=>_v128 (func (param f64 exnref) (result v128))) + (type $none_=>_anyref (func (result anyref))) + (type $f64_exnref_=>_anyref (func (param f64 exnref) (result anyref))) + (type $nullref_funcref_nullref_exnref_=>_anyref (func (param nullref funcref nullref exnref) (result anyref))) + (type $none_=>_nullref (func (result nullref))) + (type $f32_=>_exnref (func (param f32) (result exnref))) (import "fuzzing-support" "log-i32" (func $log-i32 (param i32))) (import "fuzzing-support" "log-i64" (func $log-i64 (param i64))) (import "fuzzing-support" "log-f32" (func $log-f32 (param f32))) @@ -31,8 +28,8 @@ (import "fuzzing-support" "log-exnref" (func $log-exnref (param exnref))) (memory $0 1 1) (data (i32.const 0) "N\0fN\f5\f9\b1\ff\fa\eb\e5\fe\a7\ec\fb\fc\f4\a6\e4\ea\f0\ae\e3") - (table $0 10 10 funcref) - (elem (i32.const 0) $func_8 $func_13 $func_13 $func_13 $func_14 $func_15 $func_17 $func_23 $func_23 $func_31) + (table $0 10 funcref) + (elem (i32.const 0) $func_16 $func_16 $func_18 $func_19 $func_23 $func_23 $func_23 $func_23 $func_23 $func_23) (global $global$0 (mut i32) (i32.const 975663930)) (global $global$1 (mut i32) (i32.const 2066300474)) (global $global$2 (mut i64) (i64.const 20510)) @@ -43,25 +40,21 @@ (global $global$7 (mut nullref) (ref.null)) (global $global$8 (mut nullref) (ref.null)) (global $hangLimit (mut i32) (i32.const 10)) - (event $event$0 (attr 0) (param f64 exnref)) - (event $event$1 (attr 0) (param exnref f32 v128 i32 funcref)) + (event $event$0 (attr 0) (param f64 exnref exnref)) + (event $event$1 (attr 0) (param exnref)) (export "hashMemory" (func $hashMemory)) (export "memory" (memory $0)) (export "func_8" (func $func_8)) + (export "func_9" (func $func_9)) (export "func_9_invoker" (func $func_9_invoker)) (export "func_11_invoker" (func $func_11_invoker)) - (export "func_13" (func $func_13)) - (export "func_15_invoker" (func $func_15_invoker)) - (export "func_17_invoker" (func $func_17_invoker)) - (export "func_19_invoker" (func $func_19_invoker)) - (export "func_23_invoker" (func $func_23_invoker)) - (export "func_25_invoker" (func $func_25_invoker)) - (export "func_27_invoker" (func $func_27_invoker)) - (export "func_29_invoker" (func $func_29_invoker)) - (export "func_31" (func $func_31)) - (export "func_31_invoker" (func $func_31_invoker)) - (export "func_34" (func $func_34)) - (export "func_34_invoker" (func $func_34_invoker)) + (export "func_13_invoker" (func $func_13_invoker)) + (export "func_17" (func $func_17)) + (export "func_18" (func $func_18)) + (export "func_20" (func $func_20)) + (export "func_21_invoker" (func $func_21_invoker)) + (export "func_23" (func $func_23)) + (export "func_24" (func $func_24)) (export "hangLimitInitializer" (func $hangLimitInitializer)) (func $hashMemory (; 7 ;) (result i32) (local $0 i32) @@ -294,23 +287,15 @@ ) (local.get $0) ) - (func $func_8 (; 8 ;) - (local $0 v128) - (local $1 exnref) - (local $2 f64) - (local $3 f32) - (local $4 i64) - (local $5 funcref) - (local $6 v128) - (local $7 funcref) - (local $8 i64) - (local $9 funcref) + (func $func_8 (; 8 ;) (result anyref) (block (if (i32.eqz (global.get $hangLimit) ) - (return) + (return + (ref.null) + ) ) (global.set $hangLimit (i32.sub @@ -319,30 +304,19 @@ ) ) ) - (block $label$0 - (nop) - (local.set $9 - (local.tee $7 - (local.tee $7 - (local.tee $9 - (local.tee $5 - (local.tee $7 - (local.get $9) - ) - ) - ) - ) - ) - ) - ) + (ref.null) ) - (func $func_9 (; 9 ;) (param $0 anyref) (param $1 i64) (param $2 i32) (param $3 f32) (param $4 nullref) (param $5 exnref) + (func $func_9 (; 9 ;) (result i64) + (local $0 v128) + (local $1 f64) (block (if (i32.eqz (global.get $hangLimit) ) - (return) + (return + (i64.const 127) + ) ) (global.set $hangLimit (i32.sub @@ -351,52 +325,33 @@ ) ) ) - (call $log-exnref - (block $label$0 - (call $log-f64 - (f64.const 27) - ) - (return) + (block $label$0 (result i64) + (call $log-i32 + (call $hashMemory) ) + (i64.const 18014398509481984) ) ) (func $func_9_invoker (; 10 ;) - (call $func_9 - (ref.null) - (i64.const -114) - (i32.const -1) - (f32.const -nan:0x7ffff0) - (ref.null) - (ref.null) - ) - (call $func_9 - (ref.null) - (i64.const -128) - (i32.const 2147483647) - (f32.const 2305843009213693952) - (ref.null) - (ref.null) - ) - (call $func_9 - (ref.null) - (i64.const -84) - (i32.const -77) - (f32.const 65463) - (ref.null) - (ref.null) + (drop + (call $func_9) ) (call $log-i32 (call $hashMemory) ) ) - (func $func_11 (; 11 ;) (param $0 f32) (param $1 v128) (param $2 v128) (param $3 f32) (result nullref) + (func $func_11 (; 11 ;) (param $0 f64) (result v128) + (local $1 nullref) + (local $2 f32) + (local $3 funcref) + (local $4 i64) (block (if (i32.eqz (global.get $hangLimit) ) (return - (ref.null) + (v128.const i32x4 0x314e0000 0x0000e901 0x19000354 0x0001e501) ) ) (global.set $hangLimit @@ -406,83 +361,39 @@ ) ) ) - (ref.null) + (v128.const i32x4 0x00020000 0x00000000 0xfffffff3 0xffffffff) ) (func $func_11_invoker (; 12 ;) (drop (call $func_11 - (f32.const -4) - (v128.const i32x4 0xffffffe8 0x00000a12 0x00000002 0xffffff80) - (v128.const i32x4 0x00000000 0x00000001 0x00000000 0x40000000) - (f32.const 4503599627370496) + (f64.const -1.1754943508222875e-38) ) ) + (call $log-i32 + (call $hashMemory) + ) (drop (call $func_11 - (f32.const 2.7426516613360263e-09) - (v128.const i32x4 0x0d080315 0x00001811 0xfffffc00 0x0000007f) - (v128.const i32x4 0x0000187f 0x042c50ee 0x005c171b 0x001a1b1a) - (f32.const -nan:0x7ffff0) - ) - ) - ) - (func $func_13 (; 13 ;) (result i64) - (block - (if - (i32.eqz - (global.get $hangLimit) - ) - (return - (i64.const 114) - ) - ) - (global.set $hangLimit - (i32.sub - (global.get $hangLimit) - (i32.const 1) - ) + (f64.const 536870912) ) ) - (i64.const 9093677305969276536) - ) - (func $func_14 (; 14 ;) (result i64) - (local $0 i64) - (block - (if - (i32.eqz - (global.get $hangLimit) - ) - (return - (local.get $0) - ) - ) - (global.set $hangLimit - (i32.sub - (global.get $hangLimit) - (i32.const 1) - ) - ) + (call $log-i32 + (call $hashMemory) ) - (block $label$0 - (nop) - (return - (i64.const 302456592) + (drop + (call $func_11 + (f64.const 6009) ) ) ) - (func $func_15 (; 15 ;) (param $0 v128) (param $1 anyref) (param $2 i32) (param $3 i32) (result funcref) - (local $4 funcref) - (local $5 f64) - (local $6 i32) - (local $7 i64) + (func $func_13 (; 13 ;) (param $0 i64) (param $1 exnref) (param $2 f32) (param $3 funcref) (param $4 exnref) + (local $5 v128) (block (if (i32.eqz (global.get $hangLimit) ) - (return - (local.get $4) - ) + (return) ) (global.set $hangLimit (i32.sub @@ -491,95 +402,239 @@ ) ) ) - (block $label$0 - (call $log-exnref - (ref.null) - ) - (return - (local.get $4) - ) - ) - ) - (func $func_15_invoker (; 16 ;) - (drop - (call $func_15 - (v128.const i32x4 0x00080000 0x1a180e76 0x3a25515d 0xffff8001) - (ref.null) - (i32.const 202116108) - (i32.const 151587164) - ) - ) - (call $log-i32 - (call $hashMemory) - ) - ) - (func $func_17 (; 17 ;) (result i32) - (local $0 i64) - (local $1 v128) - (local $2 v128) - (local $3 f32) - (local $4 funcref) - (block - (if + (call $log-i64 + (if (result i64) (i32.eqz - (global.get $hangLimit) - ) - (return - (i32.const 332) - ) - ) - (global.set $hangLimit - (i32.sub - (global.get $hangLimit) - (i32.const 1) + (i32.const 3084) ) - ) - ) - (block $label$0 - (loop $label$1 - (block - (if + (block $label$0 (result i64) + (call $log-i32 + (call $hashMemory) + ) + (if (result i64) (i32.eqz - (global.get $hangLimit) - ) - (return - (i32.const -128) + (if (result i32) + (i32.eqz + (loop $label$1 + (block + (if + (i32.eqz + (global.get $hangLimit) + ) + (return) + ) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) + ) + ) + (block $label$2 + (call $log-i32 + (call $hashMemory) + ) + (return) + ) + ) + ) + (i32.const 1532511570) + (i32.const 52123137) + ) ) - ) - (global.set $hangLimit - (i32.sub - (global.get $hangLimit) - (i32.const 1) + (i64.const -110) + (block $label$3 + (nop) + (return) ) ) ) - (block $label$2 - (nop) + (block $label$4 (nop) + (loop $label$6 + (block + (if + (i32.eqz + (global.get $hangLimit) + ) + (return) + ) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) + ) + ) + (block $label$7 + (if + (loop $label$8 (result i32) + (block + (if + (i32.eqz + (global.get $hangLimit) + ) + (return) + ) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) + ) + ) + (block $label$9 (result i32) + (local.set $1 + (loop $label$10 (result exnref) + (block + (if + (i32.eqz + (global.get $hangLimit) + ) + (return) + ) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) + ) + ) + (block (result exnref) + (block $label$11 + (if + (i32.eqz + (if (result i32) + (i32.const -536870912) + (i32.const 10016) + (block $label$12 + (call $log-i32 + (i32.const 486999634) + ) + (br $label$11) + ) + ) + ) + (call $log-i32 + (call $hashMemory) + ) + (block $label$13 + (nop) + ) + ) + (call $log-i64 + (local.get $0) + ) + ) + (br_if $label$10 + (i32.eqz + (loop $label$14 (result i32) + (block + (if + (i32.eqz + (global.get $hangLimit) + ) + (return) + ) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) + ) + ) + (block (result i32) + (block $label$15 + (local.tee $1 + (block $label$16 + (local.set $1 + (ref.null) + ) + (br $label$14) + ) + ) + (block $label$17 + (call $log-i32 + (i32.const -41) + ) + (call $log-i32 + (call $hashMemory) + ) + ) + ) + (br_if $label$14 + (br_if $label$9 + (ref.is_null + (ref.null) + ) + (br_if $label$9 + (i32.const 262144) + (i32.const 3084) + ) + ) + ) + (i32.const 128) + ) + ) + ) + ) + (local.get $4) + ) + ) + ) + (i32.const 792338989) + ) + ) + (block $label$18 + (loop $label$19 + (block + (if + (i32.eqz + (global.get $hangLimit) + ) + (return) + ) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) + ) + ) + (local.set $5 + (local.get $5) + ) + ) + (nop) + ) + (local.set $1 + (local.get $4) + ) + ) + (br $label$6) + ) + ) ) ) - (call $log-i32 - (call $hashMemory) - ) - (return - (i32.const 84215045) - ) ) ) - (func $func_17_invoker (; 18 ;) - (drop - (call $func_17) + (func $func_13_invoker (; 14 ;) + (call $func_13 + (i64.const -9223372036854775808) + (ref.null) + (f32.const 9223372036854775808) + (ref.func $log-i32) + (ref.null) ) ) - (func $func_19 (; 19 ;) (param $0 i64) (result i32) - (local $1 f32) + (func $func_15 (; 15 ;) (result f64) (block (if (i32.eqz (global.get $hangLimit) ) (return - (i32.const 2) + (f64.const 3.8437398592487645e-236) ) ) (global.set $hangLimit @@ -589,39 +644,16 @@ ) ) ) - (i32.const 65536) - ) - (func $func_19_invoker (; 20 ;) - (drop - (call $func_19 - (i64.const 129) - ) - ) - (drop - (call $func_19 - (i64.const 562949953421312) - ) - ) - (call $log-i32 - (call $hashMemory) - ) - (drop - (call $func_19 - (i64.const -32767) - ) - ) - (call $log-i32 - (call $hashMemory) - ) + (f64.const -nan:0xfffffffffffa1) ) - (func $func_21 (; 21 ;) (result i32) + (func $func_16 (; 16 ;) (param $0 f64) (param $1 exnref) (result v128) (block (if (i32.eqz (global.get $hangLimit) ) (return - (i32.const 90) + (v128.const i32x4 0x000800ff 0x42410000 0x223a652c 0x4000fff8) ) ) (global.set $hangLimit @@ -631,26 +663,17 @@ ) ) ) - (block $label$0 - (nop) - (return - (i32.const 7446) - ) - ) + (v128.const i32x4 0xffffffb4 0xffffffff 0x444b4141 0x40434a4a) ) - (func $func_22 (; 22 ;) (result f32) - (local $0 i64) - (local $1 exnref) - (local $2 funcref) - (local $3 i64) - (local $4 anyref) + (func $func_17 (; 17 ;) (param $0 f64) (param $1 exnref) (result anyref) + (local $2 nullref) (block (if (i32.eqz (global.get $hangLimit) ) (return - (f32.const 21554) + (ref.null) ) ) (global.set $hangLimit @@ -660,21 +683,22 @@ ) ) ) - (block $label$0 - (return - (f32.const -1.1754943508222875e-38) + (if (result nullref) + (i32.eqz + (i32.const 262144) ) + (ref.null) + (ref.null) ) ) - (func $func_23 (; 23 ;) (param $0 nullref) (result anyref) - (local $1 exnref) + (func $func_18 (; 18 ;) (result i64) (block (if (i32.eqz (global.get $hangLimit) ) (return - (ref.null) + (i64.const 4096) ) ) (global.set $hangLimit @@ -684,159 +708,37 @@ ) ) ) - (block $label$0 (result nullref) - (nop) - (loop $label$2 (result nullref) - (block - (if - (i32.eqz - (global.get $hangLimit) - ) - (return - (ref.null) - ) + (loop $label$0 (result i64) + (block + (if + (i32.eqz + (global.get $hangLimit) ) - (global.set $hangLimit - (i32.sub - (global.get $hangLimit) - (i32.const 1) - ) + (return + (i64.const 15) ) ) - (loop $label$3 (result nullref) - (block - (if - (i32.eqz - (global.get $hangLimit) - ) - (return - (ref.null) - ) - ) - (global.set $hangLimit - (i32.sub - (global.get $hangLimit) - (i32.const 1) - ) - ) - ) - (block (result nullref) - (call $log-i32 - (call $hashMemory) - ) - (br_if $label$3 - (i32.const 12) - ) - (ref.null) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) ) ) ) + (i64.const 6509766706562358106) ) ) - (func $func_23_invoker (; 24 ;) - (drop - (call $func_23 - (ref.null) - ) - ) - (call $log-i32 - (call $hashMemory) - ) - (drop - (call $func_23 - (ref.null) - ) - ) - (call $log-i32 - (call $hashMemory) - ) - (drop - (call $func_23 - (ref.null) - ) - ) - ) - (func $func_25 (; 25 ;) (param $0 f32) (result i64) - (local $1 i32) + (func $func_19 (; 19 ;) (result i64) + (local $0 anyref) + (local $1 funcref) (local $2 f64) - (local $3 funcref) - (local $4 i32) - (local $5 f32) - (local $6 anyref) - (block - (if - (i32.eqz - (global.get $hangLimit) - ) - (return - (i64.const -9223372036854775808) - ) - ) - (global.set $hangLimit - (i32.sub - (global.get $hangLimit) - (i32.const 1) - ) - ) - ) - (i64.const -16) - ) - (func $func_25_invoker (; 26 ;) - (drop - (call $func_25 - (f32.const 30) - ) - ) - (drop - (call $func_25 - (f32.const 17179869184) - ) - ) - (call $log-i32 - (call $hashMemory) - ) - (drop - (call $func_25 - (f32.const 2147483648) - ) - ) - (drop - (call $func_25 - (f32.const -nan:0x7fffc1) - ) - ) - (call $log-i32 - (call $hashMemory) - ) - (drop - (call $func_25 - (f32.const 9223372036854775808) - ) - ) - (drop - (call $func_25 - (f32.const 0) - ) - ) - (call $log-i32 - (call $hashMemory) - ) - (drop - (call $func_25 - (f32.const 8760) - ) - ) - ) - (func $func_27 (; 27 ;) (param $0 i32) (param $1 exnref) (param $2 exnref) (param $3 v128) (param $4 v128) (param $5 v128) (result nullref) - (local $6 f32) - (local $7 v128) (block (if (i32.eqz (global.get $hangLimit) ) (return - (ref.null) + (i64.const 21339) ) ) (global.set $hangLimit @@ -847,37 +749,33 @@ ) ) (block $label$0 - (call $log-i64 - (i64.const 84) - ) + (nop) (return - (ref.null) + (i64.const -2199023255552) ) ) ) - (func $func_27_invoker (; 28 ;) - (drop - (call $func_27 - (i32.const -69) - (ref.null) - (ref.null) - (v128.const i32x4 0x00000000 0x40800800 0x00000000 0x42200000) - (v128.const i32x4 0x00800000 0x42dc0000 0x40000000 0xcf000000) - (v128.const i32x4 0x00000000 0x41e00000 0x00000000 0x38100000) - ) - ) - (call $log-i32 - (call $hashMemory) - ) - ) - (func $func_29 (; 29 ;) (result i32) + (func $func_20 (; 20 ;) (result f64) + (local $0 v128) + (local $1 f32) + (local $2 v128) + (local $3 funcref) + (local $4 v128) + (local $5 nullref) + (local $6 i32) + (local $7 i32) + (local $8 funcref) + (local $9 v128) + (local $10 v128) + (local $11 v128) + (local $12 funcref) (block (if (i32.eqz (global.get $hangLimit) ) (return - (i32.const 7) + (f64.const 5) ) ) (global.set $hangLimit @@ -887,14 +785,9 @@ ) ) ) - (i32.const -18) + (f64.const 1.6293189712507804e-52) ) - (func $func_29_invoker (; 30 ;) - (drop - (call $func_29) - ) - ) - (func $func_31 (; 31 ;) (param $0 v128) (result nullref) + (func $func_21 (; 21 ;) (result nullref) (block (if (i32.eqz @@ -911,99 +804,54 @@ ) ) ) - (if - (i32.load8_s offset=22 - (i32.and - (i32.const 774514976) - (i32.const 15) - ) - ) - (select - (block $label$0 - (block $label$1 - (block $label$5 - (call $log-i32 - (call $hashMemory) - ) - (return - (ref.null) - ) - ) - ) - ) - (return_call $func_31 - (local.tee $0 - (v128.const i32x4 0x00000000 0xc3e00000 0x00000000 0x40b70500) - ) - ) - (i32.const 0) - ) - (block $label$3 - (nop) - (block $label$4 - (call $log-f32 - (f32.const -1152921504606846976) - ) - (return_call $func_31 - (v128.const i32x4 0x08000000 0x00000000 0xffff8000 0xffffffff) - ) - ) + (block $label$0 + (nop) + (return + (ref.null) ) ) ) - (func $func_31_invoker (; 32 ;) + (func $func_21_invoker (; 22 ;) (drop - (call $func_31 - (v128.const i32x4 0x00080000 0x00000081 0xffffffad 0x00000001) - ) + (call $func_21) + ) + (drop + (call $func_21) + ) + (drop + (call $func_21) + ) + (call $log-i32 + (call $hashMemory) + ) + (drop + (call $func_21) ) (call $log-i32 (call $hashMemory) ) ) - (func $func_33 (; 33 ;) - (local $0 i32) - (local $1 f64) - (local $2 i64) - (local $3 f64) - (local $4 i64) - (local $5 anyref) + (func $func_23 (; 23 ;) (param $0 nullref) (param $1 funcref) (param $2 nullref) (param $3 exnref) (result anyref) + (local $4 exnref) + (local $5 i32) (local $6 i32) - (local $7 v128) + (local $7 f32) (local $8 i32) - (local $9 f64) - (local $10 f64) - (local $11 nullref) + (local $9 funcref) + (local $10 nullref) + (local $11 anyref) (local $12 v128) - (block - (if - (i32.eqz - (global.get $hangLimit) - ) - (return) - ) - (global.set $hangLimit - (i32.sub - (global.get $hangLimit) - (i32.const 1) - ) - ) - ) - (local.set $11 - (ref.null) - ) - ) - (func $func_34 (; 34 ;) (param $0 f64) (param $1 i32) (param $2 i64) (param $3 f64) (param $4 f32) (result anyref) - (local $5 funcref) - (local $6 f32) - (local $7 funcref) + (local $13 anyref) + (local $14 f32) + (local $15 f32) + (local $16 funcref) (block (if (i32.eqz (global.get $hangLimit) ) (return - (ref.null) + (local.get $11) ) ) (global.set $hangLimit @@ -1015,31 +863,7 @@ ) (ref.null) ) - (func $func_34_invoker (; 35 ;) - (drop - (call $func_34 - (f64.const -2.2250738585072014e-308) - (i32.const 1679427100) - (i64.const 5402) - (f64.const -1.1754943508222875e-38) - (f32.const 16384) - ) - ) - (drop - (call $func_34 - (f64.const 4294967296) - (i32.const 0) - (i64.const 19531) - (f64.const 1256914182047749521306957e208) - (f32.const 470816288) - ) - ) - (call $log-i32 - (call $hashMemory) - ) - ) - (func $func_36 (; 36 ;) (result funcref) - (local $0 nullref) + (func $func_24 (; 24 ;) (param $0 f32) (result exnref) (block (if (i32.eqz @@ -1056,60 +880,150 @@ ) ) ) - (block $label$0 (result funcref) - (call $log-f32 - (block $label$1 - (call $log-i32 - (call $hashMemory) - ) - (return - (ref.func $func_15_invoker) - ) + (if (result nullref) + (block (result i32) + (block $label$7 + (nop) + (nop) ) + (nop) + (i32.const 6924) ) - (loop $label$2 (result funcref) - (block - (if - (i32.eqz - (global.get $hangLimit) - ) - (return - (ref.func $func_27_invoker) + (block $label$0 (result nullref) + (local.set $0 + (local.tee $0 + (if (result f32) + (i32.const -33554432) + (local.tee $0 + (local.tee $0 + (local.tee $0 + (f32.const 2147483648) + ) + ) + ) + (local.tee $0 + (local.tee $0 + (local.tee $0 + (f32.const 2147483648) + ) + ) + ) ) ) - (global.set $hangLimit - (i32.sub - (global.get $hangLimit) - (i32.const 1) + ) + (loop $label$1 (result nullref) + (block + (if + (i32.eqz + (global.get $hangLimit) + ) + (return + (ref.null) + ) + ) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) ) ) - ) - (block (result funcref) - (block $label$3 - (br_if $label$2 - (i32.const 11) + (block (result nullref) + (block $label$2 + (block $label$3 + (nop) + ) + (nop) ) (nop) + (block $label$4 (result nullref) + (block $label$5 + (local.set $0 + (if (result f32) + (loop $label$6 (result i32) + (block + (if + (i32.eqz + (global.get $hangLimit) + ) + (return + (ref.null) + ) + ) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) + ) + ) + (block (result i32) + (nop) + (br_if $label$6 + (i32.eqz + (i32.const -32767) + ) + ) + (i32.const 6924) + ) + ) + (local.tee $0 + (f32.const 1668112640) + ) + (block $label$10 (result f32) + (nop) + (local.tee $0 + (local.tee $0 + (f32.abs + (local.get $0) + ) + ) + ) + ) + ) + ) + (nop) + (nop) + ) + (ref.null) + ) ) - (br_if $label$2 - (i32.eqz - (i32.const -119) + ) + ) + (block $label$11 + (loop $label$12 + (block + (if + (i32.eqz + (global.get $hangLimit) + ) + (return + (ref.null) + ) + ) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) ) ) - (block (result funcref) + (block $label$13 (nop) - (br_if $label$2 + (br_if $label$13 (i32.eqz - (i32.const -119) + (i32.const 64) ) ) - (ref.func $func_34_invoker) ) ) + (return + (ref.null) + ) ) ) ) - (func $hangLimitInitializer (; 37 ;) + (func $hangLimitInitializer (; 25 ;) (global.set $hangLimit (i32.const 10) ) diff --git a/test/passes/translate-to-fuzz_no-fuzz-nans_all-features.txt b/test/passes/translate-to-fuzz_no-fuzz-nans_all-features.txt index 7a1000fd5..5abc83239 100644 --- a/test/passes/translate-to-fuzz_no-fuzz-nans_all-features.txt +++ b/test/passes/translate-to-fuzz_no-fuzz-nans_all-features.txt @@ -1,29 +1,26 @@ (module (type $none_=>_none (func)) - (type $none_=>_i32 (func (result i32))) (type $none_=>_i64 (func (result i64))) + (type $exnref_=>_none (func (param exnref))) + (type $none_=>_f64 (func (result f64))) (type $i32_=>_none (func (param i32))) (type $i64_=>_none (func (param i64))) + (type $i64_exnref_f32_funcref_exnref_=>_none (func (param i64 exnref f32 funcref exnref))) (type $f32_=>_none (func (param f32))) (type $f64_=>_none (func (param f64))) - (type $f64_exnref_=>_none (func (param f64 exnref))) + (type $f64_exnref_exnref_=>_none (func (param f64 exnref exnref))) (type $v128_=>_none (func (param v128))) - (type $anyref_i64_i32_f32_nullref_exnref_=>_none (func (param anyref i64 i32 f32 nullref exnref))) (type $nullref_=>_none (func (param nullref))) - (type $exnref_=>_none (func (param exnref))) - (type $exnref_f32_v128_i32_funcref_=>_none (func (param exnref f32 v128 i32 funcref))) - (type $i64_=>_i32 (func (param i64) (result i32))) - (type $f32_=>_i64 (func (param f32) (result i64))) - (type $none_=>_f32 (func (result f32))) + (type $none_=>_i32 (func (result i32))) (type $f32_=>_f32 (func (param f32) (result f32))) (type $f64_=>_f64 (func (param f64) (result f64))) - (type $none_=>_funcref (func (result funcref))) - (type $v128_anyref_i32_i32_=>_funcref (func (param v128 anyref i32 i32) (result funcref))) - (type $f64_i32_i64_f64_f32_=>_anyref (func (param f64 i32 i64 f64 f32) (result anyref))) - (type $nullref_=>_anyref (func (param nullref) (result anyref))) - (type $i32_exnref_exnref_v128_v128_v128_=>_nullref (func (param i32 exnref exnref v128 v128 v128) (result nullref))) - (type $f32_v128_v128_f32_=>_nullref (func (param f32 v128 v128 f32) (result nullref))) - (type $v128_=>_nullref (func (param v128) (result nullref))) + (type $f64_=>_v128 (func (param f64) (result v128))) + (type $f64_exnref_=>_v128 (func (param f64 exnref) (result v128))) + (type $none_=>_anyref (func (result anyref))) + (type $f64_exnref_=>_anyref (func (param f64 exnref) (result anyref))) + (type $nullref_funcref_nullref_exnref_=>_anyref (func (param nullref funcref nullref exnref) (result anyref))) + (type $none_=>_nullref (func (result nullref))) + (type $f32_=>_exnref (func (param f32) (result exnref))) (import "fuzzing-support" "log-i32" (func $log-i32 (param i32))) (import "fuzzing-support" "log-i64" (func $log-i64 (param i64))) (import "fuzzing-support" "log-f32" (func $log-f32 (param f32))) @@ -34,7 +31,7 @@ (memory $0 1 1) (data (i32.const 0) "N\0fN\f5\f9\b1\ff\fa\eb\e5\fe\a7\ec\fb\fc\f4\a6\e4\ea\f0\ae\e3") (table $0 10 10 funcref) - (elem (i32.const 0) $func_8 $func_13 $func_13 $func_13 $func_14 $func_15 $func_17 $func_23 $func_23 $func_31) + (elem (i32.const 0) $func_16 $func_16 $func_18 $func_19 $func_23 $func_23 $func_23 $func_23 $func_23 $func_23) (global $global$0 (mut i32) (i32.const 975663930)) (global $global$1 (mut i32) (i32.const 2066300474)) (global $global$2 (mut i64) (i64.const 20510)) @@ -45,26 +42,21 @@ (global $global$7 (mut nullref) (ref.null)) (global $global$8 (mut nullref) (ref.null)) (global $hangLimit (mut i32) (i32.const 10)) - (event $event$0 (attr 0) (param f64 exnref)) - (event $event$1 (attr 0) (param exnref f32 v128 i32 funcref)) + (event $event$0 (attr 0) (param f64 exnref exnref)) + (event $event$1 (attr 0) (param exnref)) (export "hashMemory" (func $hashMemory)) (export "memory" (memory $0)) (export "func_8" (func $func_8)) + (export "func_9" (func $func_9)) (export "func_9_invoker" (func $func_9_invoker)) (export "func_11_invoker" (func $func_11_invoker)) - (export "func_13" (func $func_13)) - (export "func_15_invoker" (func $func_15_invoker)) - (export "func_17_invoker" (func $func_17_invoker)) - (export "func_19_invoker" (func $func_19_invoker)) - (export "func_23_invoker" (func $func_23_invoker)) - (export "func_25_invoker" (func $func_25_invoker)) - (export "func_27_invoker" (func $func_27_invoker)) - (export "func_29_invoker" (func $func_29_invoker)) - (export "func_31" (func $func_31)) - (export "func_31_invoker" (func $func_31_invoker)) - (export "func_34" (func $func_34)) - (export "func_34_invoker" (func $func_34_invoker)) - (export "func_36" (func $func_36)) + (export "func_13_invoker" (func $func_13_invoker)) + (export "func_17" (func $func_17)) + (export "func_18" (func $func_18)) + (export "func_20" (func $func_20)) + (export "func_21_invoker" (func $func_21_invoker)) + (export "func_23" (func $func_23)) + (export "func_24" (func $func_24)) (export "hangLimitInitializer" (func $hangLimitInitializer)) (func $hashMemory (; 7 ;) (result i32) (local $0 i32) @@ -297,23 +289,15 @@ ) (local.get $0) ) - (func $func_8 (; 8 ;) - (local $0 v128) - (local $1 exnref) - (local $2 f64) - (local $3 f32) - (local $4 i64) - (local $5 funcref) - (local $6 v128) - (local $7 funcref) - (local $8 i64) - (local $9 funcref) + (func $func_8 (; 8 ;) (result anyref) (block (if (i32.eqz (global.get $hangLimit) ) - (return) + (return + (ref.null) + ) ) (global.set $hangLimit (i32.sub @@ -322,30 +306,19 @@ ) ) ) - (block $label$0 - (nop) - (local.set $9 - (local.tee $7 - (local.tee $7 - (local.tee $9 - (local.tee $5 - (local.tee $7 - (local.get $9) - ) - ) - ) - ) - ) - ) - ) + (ref.null) ) - (func $func_9 (; 9 ;) (param $0 anyref) (param $1 i64) (param $2 i32) (param $3 f32) (param $4 nullref) (param $5 exnref) + (func $func_9 (; 9 ;) (result i64) + (local $0 v128) + (local $1 f64) (block (if (i32.eqz (global.get $hangLimit) ) - (return) + (return + (i64.const 127) + ) ) (global.set $hangLimit (i32.sub @@ -354,52 +327,33 @@ ) ) ) - (call $log-exnref - (block $label$0 - (call $log-f64 - (f64.const 27) - ) - (return) + (block $label$0 (result i64) + (call $log-i32 + (call $hashMemory) ) + (i64.const 18014398509481984) ) ) (func $func_9_invoker (; 10 ;) - (call $func_9 - (ref.null) - (i64.const -114) - (i32.const -1) - (f32.const 0) - (ref.null) - (ref.null) - ) - (call $func_9 - (ref.null) - (i64.const -128) - (i32.const 2147483647) - (f32.const 2305843009213693952) - (ref.null) - (ref.null) - ) - (call $func_9 - (ref.null) - (i64.const -84) - (i32.const -77) - (f32.const 65463) - (ref.null) - (ref.null) + (drop + (call $func_9) ) (call $log-i32 (call $hashMemory) ) ) - (func $func_11 (; 11 ;) (param $0 f32) (param $1 v128) (param $2 v128) (param $3 f32) (result nullref) + (func $func_11 (; 11 ;) (param $0 f64) (result v128) + (local $1 nullref) + (local $2 f32) + (local $3 funcref) + (local $4 i64) (block (if (i32.eqz (global.get $hangLimit) ) (return - (ref.null) + (v128.const i32x4 0x314e0000 0x0000e901 0x19000354 0x0001e501) ) ) (global.set $hangLimit @@ -409,83 +363,39 @@ ) ) ) - (ref.null) + (v128.const i32x4 0x00020000 0x00000000 0xfffffff3 0xffffffff) ) (func $func_11_invoker (; 12 ;) (drop (call $func_11 - (f32.const -4) - (v128.const i32x4 0xffffffe8 0x00000a12 0x00000002 0xffffff80) - (v128.const i32x4 0x00000000 0x00000001 0x00000000 0x40000000) - (f32.const 4503599627370496) + (f64.const -1.1754943508222875e-38) ) ) + (call $log-i32 + (call $hashMemory) + ) (drop (call $func_11 - (f32.const 2.7426516613360263e-09) - (v128.const i32x4 0x0d080315 0x00001811 0xfffffc00 0x0000007f) - (v128.const i32x4 0x0000187f 0x042c50ee 0x005c171b 0x001a1b1a) - (f32.const 0) + (f64.const 536870912) ) ) - ) - (func $func_13 (; 13 ;) (result i64) - (block - (if - (i32.eqz - (global.get $hangLimit) - ) - (return - (i64.const 114) - ) - ) - (global.set $hangLimit - (i32.sub - (global.get $hangLimit) - (i32.const 1) - ) - ) - ) - (i64.const 9093677305969276536) - ) - (func $func_14 (; 14 ;) (result i64) - (local $0 i64) - (block - (if - (i32.eqz - (global.get $hangLimit) - ) - (return - (local.get $0) - ) - ) - (global.set $hangLimit - (i32.sub - (global.get $hangLimit) - (i32.const 1) - ) - ) + (call $log-i32 + (call $hashMemory) ) - (block $label$0 - (nop) - (return - (i64.const 302456592) + (drop + (call $func_11 + (f64.const 6009) ) ) ) - (func $func_15 (; 15 ;) (param $0 v128) (param $1 anyref) (param $2 i32) (param $3 i32) (result funcref) - (local $4 funcref) - (local $5 f64) - (local $6 i32) - (local $7 i64) + (func $func_13 (; 13 ;) (param $0 i64) (param $1 exnref) (param $2 f32) (param $3 funcref) (param $4 exnref) + (local $5 v128) (block (if (i32.eqz (global.get $hangLimit) ) - (return - (local.get $4) - ) + (return) ) (global.set $hangLimit (i32.sub @@ -494,95 +404,239 @@ ) ) ) - (block $label$0 - (call $log-exnref - (ref.null) - ) - (return - (local.get $4) - ) - ) - ) - (func $func_15_invoker (; 16 ;) - (drop - (call $func_15 - (v128.const i32x4 0x00080000 0x1a180e76 0x3a25515d 0xffff8001) - (ref.null) - (i32.const 202116108) - (i32.const 151587164) - ) - ) - (call $log-i32 - (call $hashMemory) - ) - ) - (func $func_17 (; 17 ;) (result i32) - (local $0 i64) - (local $1 v128) - (local $2 v128) - (local $3 f32) - (local $4 funcref) - (block - (if + (call $log-i64 + (if (result i64) (i32.eqz - (global.get $hangLimit) - ) - (return - (i32.const 332) - ) - ) - (global.set $hangLimit - (i32.sub - (global.get $hangLimit) - (i32.const 1) + (i32.const 3084) ) - ) - ) - (block $label$0 - (loop $label$1 - (block - (if + (block $label$0 (result i64) + (call $log-i32 + (call $hashMemory) + ) + (if (result i64) (i32.eqz - (global.get $hangLimit) - ) - (return - (i32.const -128) + (if (result i32) + (i32.eqz + (loop $label$1 + (block + (if + (i32.eqz + (global.get $hangLimit) + ) + (return) + ) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) + ) + ) + (block $label$2 + (call $log-i32 + (call $hashMemory) + ) + (return) + ) + ) + ) + (i32.const 1532511570) + (i32.const 52123137) + ) ) - ) - (global.set $hangLimit - (i32.sub - (global.get $hangLimit) - (i32.const 1) + (i64.const -110) + (block $label$3 + (nop) + (return) ) ) ) - (block $label$2 - (nop) + (block $label$4 (nop) + (loop $label$6 + (block + (if + (i32.eqz + (global.get $hangLimit) + ) + (return) + ) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) + ) + ) + (block $label$7 + (if + (loop $label$8 (result i32) + (block + (if + (i32.eqz + (global.get $hangLimit) + ) + (return) + ) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) + ) + ) + (block $label$9 (result i32) + (local.set $1 + (loop $label$10 (result exnref) + (block + (if + (i32.eqz + (global.get $hangLimit) + ) + (return) + ) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) + ) + ) + (block (result exnref) + (block $label$11 + (if + (i32.eqz + (if (result i32) + (i32.const -536870912) + (i32.const 10016) + (block $label$12 + (call $log-i32 + (i32.const 486999634) + ) + (br $label$11) + ) + ) + ) + (call $log-i32 + (call $hashMemory) + ) + (block $label$13 + (nop) + ) + ) + (call $log-i64 + (local.get $0) + ) + ) + (br_if $label$10 + (i32.eqz + (loop $label$14 (result i32) + (block + (if + (i32.eqz + (global.get $hangLimit) + ) + (return) + ) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) + ) + ) + (block (result i32) + (block $label$15 + (local.tee $1 + (block $label$16 + (local.set $1 + (ref.null) + ) + (br $label$14) + ) + ) + (block $label$17 + (call $log-i32 + (i32.const -41) + ) + (call $log-i32 + (call $hashMemory) + ) + ) + ) + (br_if $label$14 + (br_if $label$9 + (ref.is_null + (ref.null) + ) + (br_if $label$9 + (i32.const 262144) + (i32.const 3084) + ) + ) + ) + (i32.const 128) + ) + ) + ) + ) + (local.get $4) + ) + ) + ) + (i32.const 792338989) + ) + ) + (block $label$18 + (loop $label$19 + (block + (if + (i32.eqz + (global.get $hangLimit) + ) + (return) + ) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) + ) + ) + (local.set $5 + (local.get $5) + ) + ) + (nop) + ) + (local.set $1 + (local.get $4) + ) + ) + (br $label$6) + ) + ) ) ) - (call $log-i32 - (call $hashMemory) - ) - (return - (i32.const 84215045) - ) ) ) - (func $func_17_invoker (; 18 ;) - (drop - (call $func_17) + (func $func_13_invoker (; 14 ;) + (call $func_13 + (i64.const -9223372036854775808) + (ref.null) + (f32.const 9223372036854775808) + (ref.func $log-i32) + (ref.null) ) ) - (func $func_19 (; 19 ;) (param $0 i64) (result i32) - (local $1 f32) + (func $func_15 (; 15 ;) (result f64) (block (if (i32.eqz (global.get $hangLimit) ) (return - (i32.const 2) + (f64.const 3.8437398592487645e-236) ) ) (global.set $hangLimit @@ -592,39 +646,16 @@ ) ) ) - (i32.const 65536) + (f64.const 0) ) - (func $func_19_invoker (; 20 ;) - (drop - (call $func_19 - (i64.const 129) - ) - ) - (drop - (call $func_19 - (i64.const 562949953421312) - ) - ) - (call $log-i32 - (call $hashMemory) - ) - (drop - (call $func_19 - (i64.const -32767) - ) - ) - (call $log-i32 - (call $hashMemory) - ) - ) - (func $func_21 (; 21 ;) (result i32) + (func $func_16 (; 16 ;) (param $0 f64) (param $1 exnref) (result v128) (block (if (i32.eqz (global.get $hangLimit) ) (return - (i32.const 90) + (v128.const i32x4 0x000800ff 0x42410000 0x223a652c 0x4000fff8) ) ) (global.set $hangLimit @@ -634,26 +665,17 @@ ) ) ) - (block $label$0 - (nop) - (return - (i32.const 7446) - ) - ) + (v128.const i32x4 0x00000000 0x00000000 0x444b4141 0x40434a4a) ) - (func $func_22 (; 22 ;) (result f32) - (local $0 i64) - (local $1 exnref) - (local $2 funcref) - (local $3 i64) - (local $4 anyref) + (func $func_17 (; 17 ;) (param $0 f64) (param $1 exnref) (result anyref) + (local $2 nullref) (block (if (i32.eqz (global.get $hangLimit) ) (return - (f32.const 21554) + (ref.null) ) ) (global.set $hangLimit @@ -663,21 +685,22 @@ ) ) ) - (block $label$0 - (return - (f32.const -1.1754943508222875e-38) + (if (result nullref) + (i32.eqz + (i32.const 262144) ) + (ref.null) + (ref.null) ) ) - (func $func_23 (; 23 ;) (param $0 nullref) (result anyref) - (local $1 exnref) + (func $func_18 (; 18 ;) (result i64) (block (if (i32.eqz (global.get $hangLimit) ) (return - (ref.null) + (i64.const 4096) ) ) (global.set $hangLimit @@ -687,159 +710,37 @@ ) ) ) - (block $label$0 (result nullref) - (nop) - (loop $label$2 (result nullref) - (block - (if - (i32.eqz - (global.get $hangLimit) - ) - (return - (ref.null) - ) + (loop $label$0 (result i64) + (block + (if + (i32.eqz + (global.get $hangLimit) ) - (global.set $hangLimit - (i32.sub - (global.get $hangLimit) - (i32.const 1) - ) + (return + (i64.const 15) ) ) - (loop $label$3 (result nullref) - (block - (if - (i32.eqz - (global.get $hangLimit) - ) - (return - (ref.null) - ) - ) - (global.set $hangLimit - (i32.sub - (global.get $hangLimit) - (i32.const 1) - ) - ) - ) - (block (result nullref) - (call $log-i32 - (call $hashMemory) - ) - (br_if $label$3 - (i32.const 12) - ) - (ref.null) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) ) ) ) + (i64.const 6509766706562358106) ) ) - (func $func_23_invoker (; 24 ;) - (drop - (call $func_23 - (ref.null) - ) - ) - (call $log-i32 - (call $hashMemory) - ) - (drop - (call $func_23 - (ref.null) - ) - ) - (call $log-i32 - (call $hashMemory) - ) - (drop - (call $func_23 - (ref.null) - ) - ) - ) - (func $func_25 (; 25 ;) (param $0 f32) (result i64) - (local $1 i32) + (func $func_19 (; 19 ;) (result i64) + (local $0 anyref) + (local $1 funcref) (local $2 f64) - (local $3 funcref) - (local $4 i32) - (local $5 f32) - (local $6 anyref) - (block - (if - (i32.eqz - (global.get $hangLimit) - ) - (return - (i64.const -9223372036854775808) - ) - ) - (global.set $hangLimit - (i32.sub - (global.get $hangLimit) - (i32.const 1) - ) - ) - ) - (i64.const -16) - ) - (func $func_25_invoker (; 26 ;) - (drop - (call $func_25 - (f32.const 30) - ) - ) - (drop - (call $func_25 - (f32.const 17179869184) - ) - ) - (call $log-i32 - (call $hashMemory) - ) - (drop - (call $func_25 - (f32.const 2147483648) - ) - ) - (drop - (call $func_25 - (f32.const 0) - ) - ) - (call $log-i32 - (call $hashMemory) - ) - (drop - (call $func_25 - (f32.const 9223372036854775808) - ) - ) - (drop - (call $func_25 - (f32.const 0) - ) - ) - (call $log-i32 - (call $hashMemory) - ) - (drop - (call $func_25 - (f32.const 8760) - ) - ) - ) - (func $func_27 (; 27 ;) (param $0 i32) (param $1 exnref) (param $2 exnref) (param $3 v128) (param $4 v128) (param $5 v128) (result nullref) - (local $6 f32) - (local $7 v128) (block (if (i32.eqz (global.get $hangLimit) ) (return - (ref.null) + (i64.const 21339) ) ) (global.set $hangLimit @@ -850,37 +751,33 @@ ) ) (block $label$0 - (call $log-i64 - (i64.const 84) - ) + (nop) (return - (ref.null) - ) - ) - ) - (func $func_27_invoker (; 28 ;) - (drop - (call $func_27 - (i32.const -69) - (ref.null) - (ref.null) - (v128.const i32x4 0x00000000 0x40800800 0x00000000 0x42200000) - (v128.const i32x4 0x00800000 0x42dc0000 0x40000000 0xcf000000) - (v128.const i32x4 0x00000000 0x41e00000 0x00000000 0x38100000) + (i64.const -2199023255552) ) ) - (call $log-i32 - (call $hashMemory) - ) ) - (func $func_29 (; 29 ;) (result i32) + (func $func_20 (; 20 ;) (result f64) + (local $0 v128) + (local $1 f32) + (local $2 v128) + (local $3 funcref) + (local $4 v128) + (local $5 nullref) + (local $6 i32) + (local $7 i32) + (local $8 funcref) + (local $9 v128) + (local $10 v128) + (local $11 v128) + (local $12 funcref) (block (if (i32.eqz (global.get $hangLimit) ) (return - (i32.const 7) + (f64.const 5) ) ) (global.set $hangLimit @@ -890,14 +787,9 @@ ) ) ) - (i32.const -18) - ) - (func $func_29_invoker (; 30 ;) - (drop - (call $func_29) - ) + (f64.const 1.6293189712507804e-52) ) - (func $func_31 (; 31 ;) (param $0 v128) (result nullref) + (func $func_21 (; 21 ;) (result nullref) (block (if (i32.eqz @@ -914,99 +806,54 @@ ) ) ) - (if - (i32.load8_s offset=22 - (i32.and - (i32.const 774514976) - (i32.const 15) - ) - ) - (select - (block $label$0 - (block $label$1 - (block $label$5 - (call $log-i32 - (call $hashMemory) - ) - (return - (ref.null) - ) - ) - ) - ) - (return_call $func_31 - (local.tee $0 - (v128.const i32x4 0x00000000 0xc3e00000 0x00000000 0x40b70500) - ) - ) - (i32.const 0) - ) - (block $label$3 - (nop) - (block $label$4 - (call $log-f32 - (f32.const -1152921504606846976) - ) - (return_call $func_31 - (v128.const i32x4 0x08000000 0x00000000 0xffff8000 0xffffffff) - ) - ) + (block $label$0 + (nop) + (return + (ref.null) ) ) ) - (func $func_31_invoker (; 32 ;) + (func $func_21_invoker (; 22 ;) (drop - (call $func_31 - (v128.const i32x4 0x00080000 0x00000081 0xffffffad 0x00000001) - ) + (call $func_21) + ) + (drop + (call $func_21) + ) + (drop + (call $func_21) + ) + (call $log-i32 + (call $hashMemory) + ) + (drop + (call $func_21) ) (call $log-i32 (call $hashMemory) ) ) - (func $func_33 (; 33 ;) - (local $0 i32) - (local $1 f64) - (local $2 i64) - (local $3 f64) - (local $4 i64) - (local $5 anyref) + (func $func_23 (; 23 ;) (param $0 nullref) (param $1 funcref) (param $2 nullref) (param $3 exnref) (result anyref) + (local $4 exnref) + (local $5 i32) (local $6 i32) - (local $7 v128) + (local $7 f32) (local $8 i32) - (local $9 f64) - (local $10 f64) - (local $11 nullref) + (local $9 funcref) + (local $10 nullref) + (local $11 anyref) (local $12 v128) - (block - (if - (i32.eqz - (global.get $hangLimit) - ) - (return) - ) - (global.set $hangLimit - (i32.sub - (global.get $hangLimit) - (i32.const 1) - ) - ) - ) - (local.set $11 - (ref.null) - ) - ) - (func $func_34 (; 34 ;) (param $0 f64) (param $1 i32) (param $2 i64) (param $3 f64) (param $4 f32) (result anyref) - (local $5 funcref) - (local $6 f32) - (local $7 funcref) + (local $13 anyref) + (local $14 f32) + (local $15 f32) + (local $16 funcref) (block (if (i32.eqz (global.get $hangLimit) ) (return - (ref.null) + (local.get $11) ) ) (global.set $hangLimit @@ -1018,31 +865,7 @@ ) (ref.null) ) - (func $func_34_invoker (; 35 ;) - (drop - (call $func_34 - (f64.const -2.2250738585072014e-308) - (i32.const 1679427100) - (i64.const 5402) - (f64.const -1.1754943508222875e-38) - (f32.const 16384) - ) - ) - (drop - (call $func_34 - (f64.const 4294967296) - (i32.const 0) - (i64.const 19531) - (f64.const 1256914182047749521306957e208) - (f32.const 470816288) - ) - ) - (call $log-i32 - (call $hashMemory) - ) - ) - (func $func_36 (; 36 ;) (result funcref) - (local $0 nullref) + (func $func_24 (; 24 ;) (param $0 f32) (result exnref) (block (if (i32.eqz @@ -1059,55 +882,111 @@ ) ) ) - (block $label$0 (result funcref) - (call $log-f32 - (block $label$1 - (call $log-i32 - (i32.const 117705997) - ) - (return - (ref.func $func_15_invoker) + (if (result nullref) + (i32.const 926356344) + (block $label$0 (result nullref) + (local.set $0 + (local.tee $0 + (f32.const 9223372036854775808) ) ) - ) - (loop $label$2 (result funcref) - (block - (if - (i32.eqz - (global.get $hangLimit) + (loop $label$1 (result nullref) + (block + (if + (i32.eqz + (global.get $hangLimit) + ) + (return + (ref.null) + ) ) - (return - (ref.func $func_17) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) ) ) - (global.set $hangLimit - (i32.sub - (global.get $hangLimit) - (i32.const 1) + (block (result nullref) + (block $label$2 + (block $label$3 + (nop) + ) + (nop) ) - ) - ) - (block (result funcref) - (block $label$3 - (br_if $label$3 - (i32.const 909193002) + (br_if $label$1 + (i32.const -16777216) + ) + (block $label$4 (result nullref) + (block $label$5 + (local.set $0 + (if (result f32) + (loop $label$6 (result i32) + (block + (if + (i32.eqz + (global.get $hangLimit) + ) + (return + (ref.null) + ) + ) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) + ) + ) + (block (result i32) + (block $label$7 + (nop) + (nop) + ) + (br_if $label$6 + (i32.eqz + (block $label$8 + (block $label$9 + (nop) + (br_if $label$1 + (i32.const -134217728) + ) + ) + (br $label$6) + ) + ) + ) + (i32.const 6924) + ) + ) + (local.tee $0 + (f32.const 1668112640) + ) + (f32.const 1.6767243896965264e-30) + ) + ) + (nop) + (nop) + ) + (ref.null) ) - (nop) - ) - (br_if $label$2 - (i32.const -2147483648) ) - (ref.func $func_17) + ) + ) + (block $label$11 + (nop) + (return + (ref.null) ) ) ) ) - (func $hangLimitInitializer (; 37 ;) + (func $hangLimitInitializer (; 25 ;) (global.set $hangLimit (i32.const 10) ) ) - (func $deNan32 (; 38 ;) (param $0 f32) (result f32) + (func $deNan32 (; 26 ;) (param $0 f32) (result f32) (if (result f32) (f32.eq (local.get $0) @@ -1117,7 +996,7 @@ (f32.const 0) ) ) - (func $deNan64 (; 39 ;) (param $0 f64) (result f64) + (func $deNan64 (; 27 ;) (param $0 f64) (result f64) (if (result f64) (f64.eq (local.get $0) |