diff options
author | Thomas Lively <7121787+tlively@users.noreply.github.com> | 2020-04-15 18:42:19 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-15 18:42:19 -0700 |
commit | 2302955b17104978453e84b0af3d5db490fb16c5 (patch) | |
tree | 031fa6a2dd8448535ac887ddfbfd18c14ad8337e /test | |
parent | 598b3dffae13a9fc823257d668972c3b4890b2d4 (diff) | |
download | binaryen-2302955b17104978453e84b0af3d5db490fb16c5.tar.gz binaryen-2302955b17104978453e84b0af3d5db490fb16c5.tar.bz2 binaryen-2302955b17104978453e84b0af3d5db490fb16c5.zip |
Emit tuples in the fuzzer (#2695)
Emit tuple.make, tuple.extract, and multivalue control flow, and tuple locals
and globals when multivalue is enabled. Also slightly refactors the top-level
`makeConcrete` function to be more selective about what it tries to
make based on the requested type to reduce the number of trivial nodes
created because the requested type is incompatible with the requested
node.
Diffstat (limited to 'test')
-rw-r--r-- | test/passes/translate-to-fuzz_all-features.txt | 1021 | ||||
-rw-r--r-- | test/passes/translate-to-fuzz_no-fuzz-nans_all-features.txt | 1090 |
2 files changed, 1364 insertions, 747 deletions
diff --git a/test/passes/translate-to-fuzz_all-features.txt b/test/passes/translate-to-fuzz_all-features.txt index 43b03810e..c55fcdf48 100644 --- a/test/passes/translate-to-fuzz_all-features.txt +++ b/test/passes/translate-to-fuzz_all-features.txt @@ -1,26 +1,36 @@ (module (type $none_=>_none (func)) - (type $i32_=>_none (func (param i32))) + (type $none_=>_nullref_f64_i32_nullref_nullref (func (result nullref f64 i32 nullref nullref))) (type $i64_=>_none (func (param i64))) + (type $none_=>_i32 (func (result i32))) + (type $none_=>_i32_i32_f32_exnref_nullref (func (result i32 i32 f32 exnref nullref))) + (type $none_=>_f64 (func (result f64))) + (type $none_=>_funcref_f64_i32_anyref_anyref (func (result funcref f64 i32 anyref anyref))) + (type $none_=>_nullref_nullref_nullref_nullref_i64 (func (result nullref nullref nullref nullref i64))) + (type $i32_=>_none (func (param i32))) (type $f32_=>_none (func (param f32))) (type $f64_=>_none (func (param f64))) (type $v128_=>_none (func (param v128))) - (type $funcref_anyref_f64_=>_none (func (param funcref anyref f64))) (type $nullref_=>_none (func (param nullref))) (type $exnref_=>_none (func (param exnref))) - (type $none_=>_i32 (func (result i32))) - (type $none_=>_i64 (func (result i64))) - (type $v128_=>_i64 (func (param v128) (result i64))) - (type $none_=>_f32 (func (result f32))) - (type $none_=>_f64 (func (result f64))) - (type $f32_anyref_v128_=>_f64 (func (param f32 anyref v128) (result f64))) - (type $v128_i64_nullref_i64_v128_=>_f64 (func (param v128 i64 nullref i64 v128) (result f64))) - (type $nullref_exnref_nullref_funcref_v128_=>_funcref (func (param nullref exnref nullref funcref v128) (result funcref))) + (type $f64_=>_i32 (func (param f64) (result i32))) + (type $f64_anyref_=>_i32 (func (param f64 anyref) (result i32))) + (type $f32_f32_=>_f32 (func (param f32 f32) (result f32))) + (type $funcref_funcref_anyref_anyref_nullref_=>_f64 (func (param funcref funcref anyref anyref nullref) (result f64))) + (type $nullref_=>_f64 (func (param nullref) (result f64))) + (type $none_=>_v128 (func (result v128))) + (type $none_=>_funcref_i32_i64_nullref_v128 (func (result funcref i32 i64 nullref v128))) + (type $f32_=>_funcref_i32_i64_nullref_v128 (func (param f32) (result funcref i32 i64 nullref v128))) + (type $none_=>_funcref_anyref_nullref_anyref_i64 (func (result funcref anyref nullref anyref i64))) + (type $exnref_nullref_=>_funcref_anyref_nullref_anyref_i64 (func (param exnref nullref) (result funcref anyref nullref anyref i64))) + (type $none_=>_funcref_nullref (func (result funcref nullref))) + (type $exnref_f32_=>_funcref_nullref (func (param exnref f32) (result funcref nullref))) + (type $none_=>_anyref (func (result anyref))) (type $none_=>_nullref (func (result nullref))) - (type $nullref_i64_i64_f64_=>_nullref (func (param nullref i64 i64 f64) (result nullref))) - (type $none_=>_exnref (func (result exnref))) - (type $f64_nullref_i32_funcref_nullref_=>_exnref (func (param f64 nullref i32 funcref nullref) (result exnref))) - (type $anyref_nullref_v128_f64_=>_exnref (func (param anyref nullref v128 f64) (result exnref))) + (type $i32_nullref_funcref_=>_nullref (func (param i32 nullref funcref) (result nullref))) + (type $v128_=>_nullref (func (param v128) (result nullref))) + (type $v128_exnref_v128_v128_anyref_funcref_anyref_=>_nullref (func (param v128 exnref v128 v128 anyref funcref anyref) (result nullref))) + (type $nullref_funcref_anyref_=>_exnref (func (param nullref funcref anyref) (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))) @@ -28,36 +38,49 @@ (import "fuzzing-support" "log-v128" (func $log-v128 (param v128))) (import "fuzzing-support" "log-nullref" (func $log-nullref (param nullref))) (import "fuzzing-support" "log-exnref" (func $log-exnref (param exnref))) - (memory $0 (shared 1 1)) + (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 5 5 funcref) - (elem (i32.const 0) $func_10 $func_17 $func_17 $func_17 $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)) - (global $global$3 (mut f32) (f32.const -2147483648)) - (global $global$4 (mut v128) (v128.const i32x4 0x7f002833 0x580000fe 0x59750500 0x01ff002f)) - (global $global$5 (mut funcref) (ref.null)) - (global $global$6 (mut anyref) (ref.null)) - (global $global$7 (mut nullref) (ref.null)) - (global $global$8 (mut nullref) (ref.null)) + (table $0 9 9 funcref) + (elem (i32.const 0) $func_22 $func_26 $func_26 $func_26 $func_26 $func_29 $func_31 $func_33 $func_40) + (global $global$5 (mut f32) (f32.const 74)) + (global $global$4 (mut nullref) (ref.null)) + (global $global$3 (mut i32) (i32.const 1263230471)) + (global $global$2 (mut i32) (i32.const -131072)) + (global $global$1 (mut (i64 f64 exnref)) (tuple.make + (i64.const 4294967295) + (f64.const -nan:0xffffffffffffa) + (ref.null) + )) (global $hangLimit (mut i32) (i32.const 10)) - (event $event$0 (attr 0) (param funcref anyref f64)) - (event $event$1 (attr 0) (param i32)) + (event $event$0 (attr 0) (param i64)) + (event $event$1 (attr 0) (param)) (export "hashMemory" (func $hashMemory)) (export "memory" (memory $0)) (export "func_8" (func $func_8)) - (export "func_11" (func $func_11)) + (export "func_8_invoker" (func $func_8_invoker)) + (export "func_10_invoker" (func $func_10_invoker)) (export "func_12_invoker" (func $func_12_invoker)) - (export "func_15" (func $func_15)) - (export "func_15_invoker" (func $func_15_invoker)) - (export "func_17_invoker" (func $func_17_invoker)) + (export "func_14_invoker" (func $func_14_invoker)) + (export "func_16" (func $func_16)) + (export "func_16_invoker" (func $func_16_invoker)) (export "func_19" (func $func_19)) - (export "func_19_invoker" (func $func_19_invoker)) - (export "func_21" (func $func_21)) - (export "func_21_invoker" (func $func_21_invoker)) - (export "func_23_invoker" (func $func_23_invoker)) - (export "func_25" (func $func_25)) + (export "func_20" (func $func_20)) + (export "func_20_invoker" (func $func_20_invoker)) + (export "func_22_invoker" (func $func_22_invoker)) + (export "func_24" (func $func_24)) + (export "func_24_invoker" (func $func_24_invoker)) + (export "func_26" (func $func_26)) + (export "func_26_invoker" (func $func_26_invoker)) + (export "func_29" (func $func_29)) + (export "func_29_invoker" (func $func_29_invoker)) + (export "func_31" (func $func_31)) + (export "func_32" (func $func_32)) + (export "func_33_invoker" (func $func_33_invoker)) + (export "func_35_invoker" (func $func_35_invoker)) + (export "func_37" (func $func_37)) + (export "func_37_invoker" (func $func_37_invoker)) + (export "func_40" (func $func_40)) + (export "func_40_invoker" (func $func_40_invoker)) (export "hangLimitInitializer" (func $hangLimitInitializer)) (func $hashMemory (result i32) (local $0 i32) @@ -290,13 +313,22 @@ ) (local.get $0) ) - (func $func_8 + (func $func_8 (result anyref) + (local $0 i64) + (local $1 exnref) + (local $2 nullref) + (local $3 i32) + (local $4 anyref) + (local $5 nullref) + (local $6 f32) (block (if (i32.eqz (global.get $hangLimit) ) - (return) + (return + (local.get $4) + ) ) (global.set $hangLimit (i32.sub @@ -306,19 +338,51 @@ ) ) (block $label$0 - (block $label$1 - (block $label$2 + (nop) + (loop $label$1 + (block + (if + (i32.eqz + (global.get $hangLimit) + ) + (return + (ref.null) + ) + ) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) + ) + ) + (block (nop) + (br_if $label$1 + (i32.eqz + (i32.const -8) + ) + ) (nop) ) - (nop) ) - (nop) + (return + (local.get $4) + ) ) ) - (func $func_9 (param $0 nullref) (param $1 exnref) (param $2 nullref) (param $3 funcref) (param $4 v128) (result funcref) - (local $5 nullref) - (local $6 f64) + (func $func_8_invoker + (drop + (call $func_8) + ) + (drop + (call $func_8) + ) + (drop + (call $func_8) + ) + ) + (func $func_10 (result nullref) (block (if (i32.eqz @@ -335,21 +399,55 @@ ) ) ) - (local.tee $3 - (ref.null) + (block $label$0 + (loop $label$1 + (block + (if + (i32.eqz + (global.get $hangLimit) + ) + (return + (ref.null) + ) + ) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) + ) + ) + (br_if $label$1 + (i32.eqz + (i32.const 5) + ) + ) + ) + (return + (ref.null) + ) ) ) - (func $func_10 (result i64) - (local $0 anyref) - (local $1 funcref) - (local $2 f64) + (func $func_10_invoker + (drop + (call $func_10) + ) + (call $log-i32 + (call $hashMemory) + ) + ) + (func $func_12 (param $0 exnref) (param $1 f32) (result funcref nullref) + (local $2 f32) (block (if (i32.eqz (global.get $hangLimit) ) (return - (i64.const 21339) + (tuple.make + (ref.null) + (ref.null) + ) ) ) (global.set $hangLimit @@ -359,34 +457,44 @@ ) ) ) - (block $label$0 - (nop) - (return - (i64.const -2199023255552) + (tuple.make + (ref.null) + (ref.null) + ) + ) + (func $func_12_invoker + (drop + (call $func_12 + (ref.null) + (f32.const -nan:0x7fffc8) ) ) + (call $log-i32 + (call $hashMemory) + ) + (drop + (call $func_12 + (ref.null) + (f32.const 18446744073709551615) + ) + ) + (call $log-i32 + (call $hashMemory) + ) ) - (func $func_11 (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) + (func $func_14 (result v128) + (local $0 i64) + (local $1 i32) + (local $2 f64) + (local $3 f64) + (local $4 f64) (block (if (i32.eqz (global.get $hangLimit) ) (return - (f64.const 5) + (v128.const i32x4 0xffffff01 0xffffffff 0x4e484e45 0x00000000) ) ) (global.set $hangLimit @@ -396,17 +504,32 @@ ) ) ) - (f64.const 1.6293189712507804e-52) + (v128.const i32x4 0x00000000 0xc2800000 0xffffffb0 0x4eb61298) + ) + (func $func_14_invoker + (drop + (call $func_14) + ) + (call $log-i32 + (call $hashMemory) + ) + (drop + (call $func_14) + ) + (call $log-i32 + (call $hashMemory) + ) ) - (func $func_12 (result nullref) + (func $func_16 + (local $0 exnref) + (local $1 f32) + (local $2 i64) (block (if (i32.eqz (global.get $hangLimit) ) - (return - (ref.null) - ) + (return) ) (global.set $hangLimit (i32.sub @@ -415,44 +538,30 @@ ) ) ) - (block $label$0 - (nop) - (return - (ref.null) - ) - ) + (nop) ) - (func $func_12_invoker - (drop - (call $func_12) - ) - (drop - (call $func_12) - ) - (drop - (call $func_12) - ) - (call $log-i32 - (call $hashMemory) - ) - (drop - (call $func_12) - ) - (call $log-i32 - (call $hashMemory) - ) + (func $func_16_invoker + (call $func_16) ) - (func $func_14 (param $0 nullref) (param $1 i64) (param $2 i64) (param $3 f64) (result nullref) - (local $4 f64) - (local $5 f32) - (local $6 i64) + (func $func_18 (param $0 v128) (result nullref) + (local $1 i64) + (local $2 v128) + (local $3 i32) + (local $4 nullref) + (local $5 anyref) + (local $6 f64) + (local $7 (exnref anyref exnref)) + (local $8 f32) + (local $9 (i32 v128)) + (local $10 i32) + (local $11 (f64 exnref v128 f64 f32 v128)) (block (if (i32.eqz (global.get $hangLimit) ) (return - (ref.null) + (local.get $4) ) ) (global.set $hangLimit @@ -462,22 +571,43 @@ ) ) ) - (block $label$0 (result nullref) - (nop) - (block $label$1 (result nullref) - (local.get $0) + (ref.null) + ) + (func $func_19 (result i32) + (block + (if + (i32.eqz + (global.get $hangLimit) + ) + (return + (i32.const 18233) + ) + ) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) ) ) + (i32.const 24) ) - (func $func_15 (result f32) - (local $0 funcref) + (func $func_20 (param $0 nullref) (param $1 funcref) (param $2 anyref) (result exnref) + (local $3 funcref) + (local $4 exnref) + (local $5 i32) + (local $6 funcref) + (local $7 (i64 i32 v128 f32 f64)) + (local $8 f32) + (local $9 v128) + (local $10 v128) (block (if (i32.eqz (global.get $hangLimit) ) (return - (f32.const -0) + (local.get $4) ) ) (global.set $hangLimit @@ -488,118 +618,162 @@ ) ) (block $label$0 - (call $log-f32 - (loop $label$1 (result f32) - (block - (if - (i32.eqz - (global.get $hangLimit) - ) - (return - (f32.const -nan:0x7fffe9) - ) - ) - (global.set $hangLimit - (i32.sub - (global.get $hangLimit) - (i32.const 1) - ) - ) - ) - (block (result f32) - (block $label$2 - (nop) - (nop) - ) - (br_if $label$1 - (i32.eqz - (i32.const 31868) + (call $log-i32 + (local.tee $5 + (local.tee $5 + (local.tee $5 + (local.tee $5 + (local.tee $5 + (local.tee $5 + (loop $label$1 (result i32) + (block + (if + (i32.eqz + (global.get $hangLimit) + ) + (return + (local.get $4) + ) + ) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) + ) + ) + (block $label$2 (result i32) + (local.tee $5 + (i32.const 12588) + ) + ) + ) + ) + ) ) ) - (f32.const -18446744073709551615) ) ) ) + (return + (local.get $4) + ) + ) + ) + (func $func_20_invoker + (drop + (call $func_20 + (ref.null) + (ref.func $func_12) + (ref.null) + ) + ) + ) + (func $func_22 (param $0 exnref) (param $1 nullref) (result funcref anyref nullref anyref i64) + (block (if - (block $label$3 - (call $log-exnref + (i32.eqz + (global.get $hangLimit) + ) + (return + (tuple.make + (ref.func $func_14_invoker) (ref.null) - ) - (loop $label$4 - (block - (if - (i32.eqz - (global.get $hangLimit) - ) - (return - (f32.const -nan:0x7fffef) - ) - ) - (global.set $hangLimit - (i32.sub - (global.get $hangLimit) - (i32.const 1) - ) - ) - ) - (call $log-exnref - (ref.null) - ) - ) - (return - (f32.const 2101943053617856459558324e13) + (ref.null) + (ref.null) + (i64.const -32768) ) ) - (block $label$5 - (call $log-i32 - (call $hashMemory) - ) - (br_if $label$5 - (i32.eqz - (i32.const -2147483648) - ) - ) + ) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) ) - (nop) ) - (return - (f32.const 35013904) + ) + (block $label$0 (result nullref nullref nullref nullref i64) + (block $label$1 (result nullref nullref nullref nullref i64) + (call $log-i64 + (i64.const -9223372036854775808) + ) + (tuple.make + (ref.null) + (ref.null) + (ref.null) + (ref.null) + (i64.const 1024) + ) ) ) ) - (func $func_15_invoker + (func $func_22_invoker + (drop + (call $func_22 + (ref.null) + (ref.null) + ) + ) (drop - (call $func_15) + (call $func_22 + (ref.null) + (ref.null) + ) ) (call $log-i32 (call $hashMemory) ) (drop - (call $func_15) + (call $func_22 + (ref.null) + (ref.null) + ) ) (drop - (call $func_15) + (call $func_22 + (ref.null) + (ref.null) + ) + ) + (drop + (call $func_22 + (ref.null) + (ref.null) + ) + ) + (call $log-i32 + (call $hashMemory) + ) + (drop + (call $func_22 + (ref.null) + (ref.null) + ) + ) + (drop + (call $func_22 + (ref.null) + (ref.null) + ) ) (call $log-i32 (call $hashMemory) ) ) - (func $func_17 (param $0 f64) (param $1 nullref) (param $2 i32) (param $3 funcref) (param $4 nullref) (result exnref) - (local $5 anyref) - (local $6 exnref) - (local $7 f32) - (local $8 f32) - (local $9 funcref) - (local $10 nullref) - (local $11 nullref) - (local $12 f32) + (func $func_24 (param $0 f64) (result i32) + (local $1 f64) + (local $2 exnref) + (local $3 f32) + (local $4 v128) + (local $5 (exnref f32 f32 f32 i32)) + (local $6 anyref) (block (if (i32.eqz (global.get $hangLimit) ) (return - (ref.null) + (i32.const -2147483647) ) ) (global.set $hangLimit @@ -609,36 +783,81 @@ ) ) ) - (local.tee $6 - (local.tee $6 - (ref.null) + (block $label$0 + (nop) + (return + (i32.const -2147483647) ) ) ) - (func $func_17_invoker + (func $func_24_invoker (drop - (call $func_17 - (f64.const 3.2330574282313187e-229) - (ref.null) - (i32.const 65536) - (ref.func $func_10) - (ref.null) + (call $func_24 + (f64.const 3.0737861764336346e-236) ) ) + (call $log-i32 + (call $hashMemory) + ) + ) + (func $func_26 (param $0 funcref) (param $1 funcref) (param $2 anyref) (param $3 anyref) (param $4 nullref) (result f64) + (local $5 i64) + (local $6 exnref) + (local $7 (funcref f64)) + (local $8 f32) + (local $9 anyref) + (block + (if + (i32.eqz + (global.get $hangLimit) + ) + (return + (f64.const 8.160763227260461e-259) + ) + ) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) + ) + ) + (block $label$0 (result f64) + (nop) + (f64.const 3402823466385288598117041e14) + ) + ) + (func $func_26_invoker (drop - (call $func_17 - (f64.const 2.2250738585072014e-308) + (call $func_26 + (ref.null) + (ref.func $func_22_invoker) + (ref.null) (ref.null) - (i32.const -66) - (ref.func $func_15_invoker) (ref.null) ) ) - (call $log-i32 - (call $hashMemory) + ) + (func $func_28 (param $0 nullref) (result f64) + (block + (if + (i32.eqz + (global.get $hangLimit) + ) + (return + (f64.const 3.859060993302007e-86) + ) + ) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) + ) ) + (f64.const 2147483649) ) - (func $func_19 (result exnref) + (func $func_29 (param $0 i32) (param $1 nullref) (param $2 funcref) (result nullref) (block (if (i32.eqz @@ -655,35 +874,54 @@ ) ) ) - (select (result nullref) - (ref.null) - (ref.null) - (i32.const 1) + (block $label$0 + (nop) + (return + (local.get $1) + ) ) ) - (func $func_19_invoker + (func $func_29_invoker (drop - (call $func_19) + (call $func_29 + (i32.const 2147483647) + (ref.null) + (ref.func $func_22_invoker) + ) ) (call $log-i32 (call $hashMemory) ) (drop - (call $func_19) + (call $func_29 + (i32.const -65535) + (ref.null) + (ref.null) + ) ) (call $log-i32 (call $hashMemory) ) ) - (func $func_21 (param $0 f32) (param $1 anyref) (param $2 v128) (result f64) - (local $3 f32) + (func $func_31 (param $0 f32) (result funcref i32 i64 nullref v128) + (local $1 i64) + (local $2 (f32 f32)) + (local $3 i32) + (local $4 i64) + (local $5 v128) (block (if (i32.eqz (global.get $hangLimit) ) (return - (f64.const -35) + (tuple.make + (ref.func $func_24_invoker) + (i32.const 262144) + (i64.const 5580322043939276866) + (ref.null) + (v128.const i32x4 0x5e00164d 0x2c4108ff 0x0000f83a 0x00000400) + ) ) ) (global.set $hangLimit @@ -694,140 +932,98 @@ ) ) (block $label$0 + (nop) + (return + (tuple.make + (ref.null) + (i32.const 268435456) + (i64.const 6944553142512654410) + (ref.null) + (v128.const i32x4 0x7fffffff 0x00000000 0x00006444 0x00000000) + ) + ) + ) + ) + (func $func_32 (param $0 f32) (param $1 f32) (result f32) + (block (if - (i32.const -1024) - (block $label$1 - (if - (loop $label$2 (result i32) - (block - (if - (i32.eqz - (global.get $hangLimit) - ) - (return - (f64.const 218) - ) - ) - (global.set $hangLimit - (i32.sub - (global.get $hangLimit) - (i32.const 1) - ) - ) - ) - (block (result i32) - (local.set $0 - (local.get $3) - ) - (br_if $label$2 - (i32.eqz - (i32.const -127) - ) - ) - (loop $label$5 (result i32) - (block - (if - (i32.eqz - (global.get $hangLimit) - ) - (return - (f64.const 18250224326260770977349632) - ) - ) - (global.set $hangLimit - (i32.sub - (global.get $hangLimit) - (i32.const 1) - ) - ) - ) - (block (result i32) - (local.tee $2 - (loop $label$6 - (block - (if - (i32.eqz - (global.get $hangLimit) - ) - (return - (f64.const 536870912) - ) - ) - (global.set $hangLimit - (i32.sub - (global.get $hangLimit) - (i32.const 1) - ) - ) - ) - (block $label$7 - (br $label$1) - ) - ) - ) - (br_if $label$5 - (i32.const 37771863) - ) - (i32.const 1026961235) - ) - ) - ) - ) - (local.set $0 - (f32.const 15574585428672512) - ) - (block $label$15 - (call $log-i32 - (call $hashMemory) - ) - ) - ) - (nop) + (i32.eqz + (global.get $hangLimit) + ) + (return + (local.get $1) ) - (nop) ) - (return - (f64.const 302456592) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) ) ) + (f32.const 6.785077194130481e-28) ) - (func $func_21_invoker - (drop - (call $func_21 - (f32.const 589308224) - (ref.null) - (v128.const i32x4 0xffffff81 0x04070504 0x02007d03 0xfffffe00) + (func $func_33 (param $0 v128) (param $1 exnref) (param $2 v128) (param $3 v128) (param $4 anyref) (param $5 funcref) (param $6 anyref) (result nullref) + (local $7 anyref) + (local $8 (nullref nullref)) + (local $9 f64) + (local $10 nullref) + (local $11 nullref) + (local $12 i64) + (local $13 exnref) + (local $14 exnref) + (local $15 anyref) + (local $16 f32) + (local $17 f32) + (local $18 f64) + (block + (if + (i32.eqz + (global.get $hangLimit) + ) + (return + (ref.null) + ) + ) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) ) ) - (drop - (call $func_21 - (f32.const 168096624) - (ref.null) - (v128.const i32x4 0x4ed626fe 0x74770f63 0xdf000000 0x564a5657) + (block $label$0 + (nop) + (return + (local.get $10) ) ) + ) + (func $func_33_invoker (drop - (call $func_21 - (f32.const 707669312) + (call $func_33 + (v128.const i32x4 0x80000001 0xffffff81 0xffff8000 0xfffffff0) + (ref.null) + (v128.const i32x4 0x46457378 0xffe0ffb8 0x0f0e0000 0x00807fff) + (v128.const i32x4 0x0f10001c 0x004a5b09 0x3722594b 0x53000000) + (ref.null) + (ref.null) (ref.null) - (v128.const i32x4 0x0000001f 0xfc7f3000 0x00005c00 0x5f110d0f) ) ) - (call $log-i32 - (call $hashMemory) - ) ) - (func $func_23 (param $0 v128) (result i64) - (local $1 i32) - (local $2 f64) - (local $3 f64) + (func $func_35 (result f64) + (local $0 f32) + (local $1 v128) + (local $2 funcref) + (local $3 anyref) (block (if (i32.eqz (global.get $hangLimit) ) (return - (i64.const 2147483646) + (f64.const -nan:0xfffffffffffb3) ) ) (global.set $hangLimit @@ -837,45 +1033,81 @@ ) ) ) - (block $label$0 - (local.set $3 - (local.tee $3 - (local.get $3) + (f64.const 2.6233847629195463e-33) + ) + (func $func_35_invoker + (drop + (call $func_35) + ) + ) + (func $func_37 (result f64) + (local $0 (f32 funcref f64 exnref anyref)) + (local $1 v128) + (local $2 anyref) + (local $3 nullref) + (local $4 i64) + (local $5 (v128 anyref v128 funcref)) + (local $6 funcref) + (local $7 exnref) + (block + (if + (i32.eqz + (global.get $hangLimit) + ) + (return + (f64.const 68) ) ) - (return - (i64.const 110) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) ) ) + (block $label$0 (result f64) + (call $log-exnref + (local.tee $7 + (local.tee $7 + (ref.null) + ) + ) + ) + (f64.const 8.203050004426016e-158) + ) ) - (func $func_23_invoker + (func $func_37_invoker (drop - (call $func_23 - (v128.const i32x4 0xf0000000 0x00000046 0x00080000 0x513d3229) - ) + (call $func_37) ) (call $log-i32 (call $hashMemory) ) (drop - (call $func_23 - (v128.const i32x4 0x4409256e 0xff807c7c 0x0000ffa1 0x51378000) - ) + (call $func_37) + ) + (call $log-i32 + (call $hashMemory) + ) + (drop + (call $func_37) ) (call $log-i32 (call $hashMemory) ) + (drop + (call $func_37) + ) ) - (func $func_25 (param $0 anyref) (param $1 nullref) (param $2 v128) (param $3 f64) (result exnref) - (local $4 i64) - (local $5 nullref) + (func $func_39 (param $0 f64) (param $1 anyref) (result i32) + (local $2 v128) (block (if (i32.eqz (global.get $hangLimit) ) (return - (ref.null) + (i32.const 67108864) ) ) (global.set $hangLimit @@ -885,17 +1117,68 @@ ) ) ) - (ref.null) + (i32.const 981413694) + ) + (func $func_40 (result i32 i32 f32 exnref nullref) + (local $0 i64) + (local $1 i64) + (block + (if + (i32.eqz + (global.get $hangLimit) + ) + (return + (tuple.make + (i32.const 2147483647) + (i32.const -32768) + (f32.const -9223372036854775808) + (ref.null) + (ref.null) + ) + ) + ) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) + ) + ) + (block $label$0 + (nop) + (return + (tuple.make + (i32.const -30) + (i32.const 12) + (f32.const -9223372036854775808) + (ref.null) + (ref.null) + ) + ) + ) + ) + (func $func_40_invoker + (drop + (call $func_40) + ) + (call $log-i32 + (call $hashMemory) + ) ) - (func $func_26 (param $0 v128) (param $1 i64) (param $2 nullref) (param $3 i64) (param $4 v128) (result f64) - (local $5 funcref) + (func $func_42 (result funcref f64 i32 anyref anyref) (block (if (i32.eqz (global.get $hangLimit) ) (return - (f64.const -nan:0xfffffffffffe0) + (tuple.make + (ref.func $func_16) + (f64.const 1048576) + (i32.const 1294952226) + (ref.null) + (ref.null) + ) ) ) (global.set $hangLimit @@ -905,14 +1188,20 @@ ) ) ) - (loop $label$0 (result f64) + (loop $label$0 (result nullref f64 i32 nullref nullref) (block (if (i32.eqz (global.get $hangLimit) ) (return - (f64.const 2.823288302326678e-212) + (tuple.make + (ref.func $log-nullref) + (f64.const 2312) + (i32.const 1364292894) + (ref.null) + (ref.null) + ) ) ) (global.set $hangLimit @@ -922,19 +1211,27 @@ ) ) ) - (block (result f64) + (block (result nullref f64 i32 nullref nullref) (block $label$1 - (nop) - (call $log-v128 - (v128.const i32x4 0x00000000 0xc3e00000 0x00000000 0x403c0000) + (call $log-i32 + (call $hashMemory) + ) + (call $log-i32 + (call $hashMemory) ) ) (br_if $label$0 (i32.eqz - (i32.const -2) + (i32.const 536870912) ) ) - (f64.const 2.760346204923693e-173) + (tuple.make + (ref.null) + (f64.const 1.0642378617897867e-234) + (i32.const -4096) + (ref.null) + (ref.null) + ) ) ) ) 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 17b289421..36905f66d 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,28 +1,35 @@ (module (type $none_=>_none (func)) - (type $i32_=>_none (func (param i32))) (type $i64_=>_none (func (param i64))) + (type $none_=>_i32 (func (result i32))) + (type $none_=>_f64 (func (result f64))) + (type $none_=>_nullref_nullref_nullref_nullref_i64 (func (result nullref nullref nullref nullref i64))) + (type $i32_=>_none (func (param i32))) (type $f32_=>_none (func (param f32))) (type $f64_=>_none (func (param f64))) (type $v128_=>_none (func (param v128))) - (type $funcref_anyref_f64_=>_none (func (param funcref anyref f64))) (type $nullref_=>_none (func (param nullref))) (type $exnref_=>_none (func (param exnref))) - (type $none_=>_i32 (func (result i32))) - (type $none_=>_i64 (func (result i64))) - (type $v128_=>_i64 (func (param v128) (result i64))) - (type $none_=>_f32 (func (result f32))) + (type $f64_=>_i32 (func (param f64) (result i32))) + (type $nullref_funcref_i64_=>_i64 (func (param nullref funcref i64) (result i64))) (type $f32_=>_f32 (func (param f32) (result f32))) - (type $none_=>_f64 (func (result f64))) - (type $f32_anyref_v128_=>_f64 (func (param f32 anyref v128) (result f64))) + (type $f32_f32_=>_f32 (func (param f32 f32) (result f32))) (type $f64_=>_f64 (func (param f64) (result f64))) - (type $v128_i64_nullref_i64_v128_=>_f64 (func (param v128 i64 nullref i64 v128) (result f64))) - (type $nullref_exnref_nullref_funcref_v128_=>_funcref (func (param nullref exnref nullref funcref v128) (result funcref))) + (type $funcref_funcref_anyref_anyref_nullref_=>_f64 (func (param funcref funcref anyref anyref nullref) (result f64))) + (type $nullref_=>_f64 (func (param nullref) (result f64))) + (type $none_=>_v128 (func (result v128))) + (type $none_=>_funcref_i32_i64_nullref_v128 (func (result funcref i32 i64 nullref v128))) + (type $f32_=>_funcref_i32_i64_nullref_v128 (func (param f32) (result funcref i32 i64 nullref v128))) + (type $none_=>_funcref_anyref_nullref_anyref_i64 (func (result funcref anyref nullref anyref i64))) + (type $exnref_nullref_=>_funcref_anyref_nullref_anyref_i64 (func (param exnref nullref) (result funcref anyref nullref anyref i64))) + (type $none_=>_funcref_nullref (func (result funcref nullref))) + (type $exnref_f32_=>_funcref_nullref (func (param exnref f32) (result funcref nullref))) + (type $none_=>_anyref (func (result anyref))) (type $none_=>_nullref (func (result nullref))) - (type $nullref_i64_i64_f64_=>_nullref (func (param nullref i64 i64 f64) (result nullref))) - (type $none_=>_exnref (func (result exnref))) - (type $f64_nullref_i32_funcref_nullref_=>_exnref (func (param f64 nullref i32 funcref nullref) (result exnref))) - (type $anyref_nullref_v128_f64_=>_exnref (func (param anyref nullref v128 f64) (result exnref))) + (type $i32_nullref_funcref_=>_nullref (func (param i32 nullref funcref) (result nullref))) + (type $v128_=>_nullref (func (param v128) (result nullref))) + (type $v128_exnref_v128_v128_anyref_funcref_anyref_=>_nullref (func (param v128 exnref v128 v128 anyref funcref anyref) (result nullref))) + (type $nullref_funcref_anyref_=>_exnref (func (param nullref funcref anyref) (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))) @@ -30,37 +37,47 @@ (import "fuzzing-support" "log-v128" (func $log-v128 (param v128))) (import "fuzzing-support" "log-nullref" (func $log-nullref (param nullref))) (import "fuzzing-support" "log-exnref" (func $log-exnref (param exnref))) - (memory $0 (shared 1 1)) + (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 5 funcref) - (elem (i32.const 0) $func_10 $func_17 $func_17 $func_17 $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)) - (global $global$3 (mut f32) (f32.const -2147483648)) - (global $global$4 (mut v128) (v128.const i32x4 0x7f002833 0x580000fe 0x59750500 0x01ff002f)) - (global $global$5 (mut funcref) (ref.null)) - (global $global$6 (mut anyref) (ref.null)) - (global $global$7 (mut nullref) (ref.null)) - (global $global$8 (mut nullref) (ref.null)) + (table $0 8 8 funcref) + (elem (i32.const 0) $func_22 $func_26 $func_26 $func_26 $func_26 $func_29 $func_31 $func_33) + (global $global$5 (mut f32) (f32.const 74)) + (global $global$4 (mut nullref) (ref.null)) + (global $global$3 (mut i32) (i32.const 1263230471)) + (global $global$2 (mut i32) (i32.const -131072)) + (global $global$1 (mut (i64 f64 exnref)) (tuple.make + (i64.const 4294967295) + (f64.const 0) + (ref.null) + )) (global $hangLimit (mut i32) (i32.const 10)) - (event $event$0 (attr 0) (param funcref anyref f64)) - (event $event$1 (attr 0) (param i32)) + (event $event$0 (attr 0) (param i64)) + (event $event$1 (attr 0) (param)) (export "hashMemory" (func $hashMemory)) (export "memory" (memory $0)) (export "func_8" (func $func_8)) - (export "func_11" (func $func_11)) + (export "func_8_invoker" (func $func_8_invoker)) + (export "func_10_invoker" (func $func_10_invoker)) (export "func_12_invoker" (func $func_12_invoker)) - (export "func_15" (func $func_15)) - (export "func_15_invoker" (func $func_15_invoker)) - (export "func_17_invoker" (func $func_17_invoker)) + (export "func_14_invoker" (func $func_14_invoker)) + (export "func_16" (func $func_16)) + (export "func_16_invoker" (func $func_16_invoker)) (export "func_19" (func $func_19)) - (export "func_19_invoker" (func $func_19_invoker)) - (export "func_21" (func $func_21)) - (export "func_21_invoker" (func $func_21_invoker)) - (export "func_23_invoker" (func $func_23_invoker)) - (export "func_25" (func $func_25)) + (export "func_20" (func $func_20)) + (export "func_20_invoker" (func $func_20_invoker)) + (export "func_22_invoker" (func $func_22_invoker)) + (export "func_24" (func $func_24)) + (export "func_24_invoker" (func $func_24_invoker)) (export "func_26" (func $func_26)) + (export "func_26_invoker" (func $func_26_invoker)) + (export "func_29" (func $func_29)) + (export "func_29_invoker" (func $func_29_invoker)) + (export "func_31" (func $func_31)) + (export "func_32" (func $func_32)) + (export "func_33_invoker" (func $func_33_invoker)) + (export "func_35_invoker" (func $func_35_invoker)) + (export "func_37" (func $func_37)) + (export "func_37_invoker" (func $func_37_invoker)) (export "hangLimitInitializer" (func $hangLimitInitializer)) (func $hashMemory (result i32) (local $0 i32) @@ -293,13 +310,22 @@ ) (local.get $0) ) - (func $func_8 + (func $func_8 (result anyref) + (local $0 i64) + (local $1 exnref) + (local $2 nullref) + (local $3 i32) + (local $4 anyref) + (local $5 nullref) + (local $6 f32) (block (if (i32.eqz (global.get $hangLimit) ) - (return) + (return + (local.get $4) + ) ) (global.set $hangLimit (i32.sub @@ -309,19 +335,51 @@ ) ) (block $label$0 - (block $label$1 - (block $label$2 + (nop) + (loop $label$1 + (block + (if + (i32.eqz + (global.get $hangLimit) + ) + (return + (ref.null) + ) + ) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) + ) + ) + (block (nop) + (br_if $label$1 + (i32.eqz + (i32.const -8) + ) + ) (nop) ) - (nop) ) - (nop) + (return + (local.get $4) + ) ) ) - (func $func_9 (param $0 nullref) (param $1 exnref) (param $2 nullref) (param $3 funcref) (param $4 v128) (result funcref) - (local $5 nullref) - (local $6 f64) + (func $func_8_invoker + (drop + (call $func_8) + ) + (drop + (call $func_8) + ) + (drop + (call $func_8) + ) + ) + (func $func_10 (result nullref) (block (if (i32.eqz @@ -338,21 +396,55 @@ ) ) ) - (local.tee $3 - (ref.null) + (block $label$0 + (loop $label$1 + (block + (if + (i32.eqz + (global.get $hangLimit) + ) + (return + (ref.null) + ) + ) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) + ) + ) + (br_if $label$1 + (i32.eqz + (i32.const 5) + ) + ) + ) + (return + (ref.null) + ) ) ) - (func $func_10 (result i64) - (local $0 anyref) - (local $1 funcref) - (local $2 f64) + (func $func_10_invoker + (drop + (call $func_10) + ) + (call $log-i32 + (call $hashMemory) + ) + ) + (func $func_12 (param $0 exnref) (param $1 f32) (result funcref nullref) + (local $2 f32) (block (if (i32.eqz (global.get $hangLimit) ) (return - (i64.const 21339) + (tuple.make + (ref.null) + (ref.null) + ) ) ) (global.set $hangLimit @@ -362,34 +454,44 @@ ) ) ) - (block $label$0 - (nop) - (return - (i64.const -2199023255552) + (tuple.make + (ref.null) + (ref.null) + ) + ) + (func $func_12_invoker + (drop + (call $func_12 + (ref.null) + (f32.const 0) ) ) + (call $log-i32 + (call $hashMemory) + ) + (drop + (call $func_12 + (ref.null) + (f32.const 18446744073709551615) + ) + ) + (call $log-i32 + (call $hashMemory) + ) ) - (func $func_11 (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) + (func $func_14 (result v128) + (local $0 i64) + (local $1 i32) + (local $2 f64) + (local $3 f64) + (local $4 f64) (block (if (i32.eqz (global.get $hangLimit) ) (return - (f64.const 5) + (v128.const i32x4 0xffffff01 0xffffffff 0x4e484e45 0x00000000) ) ) (global.set $hangLimit @@ -399,17 +501,32 @@ ) ) ) - (f64.const 1.6293189712507804e-52) + (v128.const i32x4 0x00000000 0xc2800000 0x00000000 0x4eb61298) ) - (func $func_12 (result nullref) + (func $func_14_invoker + (drop + (call $func_14) + ) + (call $log-i32 + (call $hashMemory) + ) + (drop + (call $func_14) + ) + (call $log-i32 + (call $hashMemory) + ) + ) + (func $func_16 + (local $0 exnref) + (local $1 f32) + (local $2 i64) (block (if (i32.eqz (global.get $hangLimit) ) - (return - (ref.null) - ) + (return) ) (global.set $hangLimit (i32.sub @@ -418,44 +535,30 @@ ) ) ) - (block $label$0 - (nop) - (return - (ref.null) - ) - ) + (nop) ) - (func $func_12_invoker - (drop - (call $func_12) - ) - (drop - (call $func_12) - ) - (drop - (call $func_12) - ) - (call $log-i32 - (call $hashMemory) - ) - (drop - (call $func_12) - ) - (call $log-i32 - (call $hashMemory) - ) + (func $func_16_invoker + (call $func_16) ) - (func $func_14 (param $0 nullref) (param $1 i64) (param $2 i64) (param $3 f64) (result nullref) - (local $4 f64) - (local $5 f32) - (local $6 i64) + (func $func_18 (param $0 v128) (result nullref) + (local $1 i64) + (local $2 v128) + (local $3 i32) + (local $4 nullref) + (local $5 anyref) + (local $6 f64) + (local $7 (exnref anyref exnref)) + (local $8 f32) + (local $9 (i32 v128)) + (local $10 i32) + (local $11 (f64 exnref v128 f64 f32 v128)) (block (if (i32.eqz (global.get $hangLimit) ) (return - (ref.null) + (local.get $4) ) ) (global.set $hangLimit @@ -465,22 +568,43 @@ ) ) ) - (block $label$0 (result nullref) - (nop) - (block $label$1 (result nullref) - (local.get $0) + (ref.null) + ) + (func $func_19 (result i32) + (block + (if + (i32.eqz + (global.get $hangLimit) + ) + (return + (i32.const 18233) + ) + ) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) ) ) + (i32.const 24) ) - (func $func_15 (result f32) - (local $0 funcref) + (func $func_20 (param $0 nullref) (param $1 funcref) (param $2 anyref) (result exnref) + (local $3 funcref) + (local $4 exnref) + (local $5 i32) + (local $6 funcref) + (local $7 (i64 i32 v128 f32 f64)) + (local $8 f32) + (local $9 v128) + (local $10 v128) (block (if (i32.eqz (global.get $hangLimit) ) (return - (f32.const -0) + (local.get $4) ) ) (global.set $hangLimit @@ -491,118 +615,162 @@ ) ) (block $label$0 - (call $log-f32 - (loop $label$1 (result f32) - (block - (if - (i32.eqz - (global.get $hangLimit) - ) - (return - (f32.const 0) - ) - ) - (global.set $hangLimit - (i32.sub - (global.get $hangLimit) - (i32.const 1) - ) - ) - ) - (block (result f32) - (block $label$2 - (nop) - (nop) - ) - (br_if $label$1 - (i32.eqz - (i32.const 31868) + (call $log-i32 + (local.tee $5 + (local.tee $5 + (local.tee $5 + (local.tee $5 + (local.tee $5 + (local.tee $5 + (loop $label$1 (result i32) + (block + (if + (i32.eqz + (global.get $hangLimit) + ) + (return + (local.get $4) + ) + ) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) + ) + ) + (block $label$2 (result i32) + (local.tee $5 + (i32.const 12588) + ) + ) + ) + ) + ) ) ) - (f32.const -18446744073709551615) ) ) ) + (return + (local.get $4) + ) + ) + ) + (func $func_20_invoker + (drop + (call $func_20 + (ref.null) + (ref.func $func_12) + (ref.null) + ) + ) + ) + (func $func_22 (param $0 exnref) (param $1 nullref) (result funcref anyref nullref anyref i64) + (block (if - (block $label$3 - (call $log-exnref + (i32.eqz + (global.get $hangLimit) + ) + (return + (tuple.make + (ref.func $func_14_invoker) (ref.null) - ) - (loop $label$4 - (block - (if - (i32.eqz - (global.get $hangLimit) - ) - (return - (f32.const 0) - ) - ) - (global.set $hangLimit - (i32.sub - (global.get $hangLimit) - (i32.const 1) - ) - ) - ) - (call $log-exnref - (ref.null) - ) - ) - (return - (f32.const 2101943053617856459558324e13) + (ref.null) + (ref.null) + (i64.const -32768) ) ) - (block $label$5 - (call $log-i32 - (call $hashMemory) - ) - (br_if $label$5 - (i32.eqz - (i32.const -2147483648) - ) - ) + ) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) ) - (nop) ) - (return - (f32.const 35013904) + ) + (block $label$0 (result nullref nullref nullref nullref i64) + (block $label$1 (result nullref nullref nullref nullref i64) + (call $log-i64 + (i64.const -9223372036854775808) + ) + (tuple.make + (ref.null) + (ref.null) + (ref.null) + (ref.null) + (i64.const 1024) + ) ) ) ) - (func $func_15_invoker + (func $func_22_invoker + (drop + (call $func_22 + (ref.null) + (ref.null) + ) + ) + (drop + (call $func_22 + (ref.null) + (ref.null) + ) + ) + (call $log-i32 + (call $hashMemory) + ) + (drop + (call $func_22 + (ref.null) + (ref.null) + ) + ) + (drop + (call $func_22 + (ref.null) + (ref.null) + ) + ) (drop - (call $func_15) + (call $func_22 + (ref.null) + (ref.null) + ) ) (call $log-i32 (call $hashMemory) ) (drop - (call $func_15) + (call $func_22 + (ref.null) + (ref.null) + ) ) (drop - (call $func_15) + (call $func_22 + (ref.null) + (ref.null) + ) ) (call $log-i32 (call $hashMemory) ) ) - (func $func_17 (param $0 f64) (param $1 nullref) (param $2 i32) (param $3 funcref) (param $4 nullref) (result exnref) - (local $5 anyref) - (local $6 exnref) - (local $7 f32) - (local $8 f32) - (local $9 funcref) - (local $10 nullref) - (local $11 nullref) - (local $12 f32) + (func $func_24 (param $0 f64) (result i32) + (local $1 f64) + (local $2 exnref) + (local $3 f32) + (local $4 v128) + (local $5 (exnref f32 f32 f32 i32)) + (local $6 anyref) (block (if (i32.eqz (global.get $hangLimit) ) (return - (ref.null) + (i32.const -2147483647) ) ) (global.set $hangLimit @@ -612,43 +780,36 @@ ) ) ) - (local.tee $6 - (local.tee $6 - (ref.null) + (block $label$0 + (nop) + (return + (i32.const -2147483647) ) ) ) - (func $func_17_invoker + (func $func_24_invoker (drop - (call $func_17 - (f64.const 3.2330574282313187e-229) - (ref.null) - (i32.const 65536) - (ref.func $func_10) - (ref.null) - ) - ) - (drop - (call $func_17 - (f64.const 2.2250738585072014e-308) - (ref.null) - (i32.const -66) - (ref.func $func_15_invoker) - (ref.null) + (call $func_24 + (f64.const 3.0737861764336346e-236) ) ) (call $log-i32 (call $hashMemory) ) ) - (func $func_19 (result exnref) + (func $func_26 (param $0 funcref) (param $1 funcref) (param $2 anyref) (param $3 anyref) (param $4 nullref) (result f64) + (local $5 i64) + (local $6 exnref) + (local $7 (funcref f64)) + (local $8 f32) + (local $9 anyref) (block (if (i32.eqz (global.get $hangLimit) ) (return - (ref.null) + (f64.const 8.160763227260461e-259) ) ) (global.set $hangLimit @@ -658,35 +819,30 @@ ) ) ) - (select (result nullref) - (ref.null) - (ref.null) - (i32.const 1) + (block $label$0 (result f64) + (nop) + (f64.const 3402823466385288598117041e14) ) ) - (func $func_19_invoker - (drop - (call $func_19) - ) - (call $log-i32 - (call $hashMemory) - ) + (func $func_26_invoker (drop - (call $func_19) - ) - (call $log-i32 - (call $hashMemory) + (call $func_26 + (ref.null) + (ref.func $func_22_invoker) + (ref.null) + (ref.null) + (ref.null) + ) ) ) - (func $func_21 (param $0 f32) (param $1 anyref) (param $2 v128) (result f64) - (local $3 f32) + (func $func_28 (param $0 nullref) (result f64) (block (if (i32.eqz (global.get $hangLimit) ) (return - (f64.const -35) + (f64.const 3.859060993302007e-86) ) ) (global.set $hangLimit @@ -696,141 +852,73 @@ ) ) ) - (block $label$0 + (f64.const 2147483649) + ) + (func $func_29 (param $0 i32) (param $1 nullref) (param $2 funcref) (result nullref) + (block (if - (i32.const -1024) - (block $label$1 - (if - (loop $label$2 (result i32) - (block - (if - (i32.eqz - (global.get $hangLimit) - ) - (return - (f64.const 218) - ) - ) - (global.set $hangLimit - (i32.sub - (global.get $hangLimit) - (i32.const 1) - ) - ) - ) - (block (result i32) - (local.set $0 - (local.get $3) - ) - (br_if $label$2 - (i32.eqz - (i32.const -127) - ) - ) - (loop $label$5 (result i32) - (block - (if - (i32.eqz - (global.get $hangLimit) - ) - (return - (f64.const 18250224326260770977349632) - ) - ) - (global.set $hangLimit - (i32.sub - (global.get $hangLimit) - (i32.const 1) - ) - ) - ) - (block (result i32) - (local.tee $2 - (loop $label$6 - (block - (if - (i32.eqz - (global.get $hangLimit) - ) - (return - (f64.const 536870912) - ) - ) - (global.set $hangLimit - (i32.sub - (global.get $hangLimit) - (i32.const 1) - ) - ) - ) - (block $label$7 - (br $label$1) - ) - ) - ) - (br_if $label$5 - (i32.const 37771863) - ) - (i32.const 1026961235) - ) - ) - ) - ) - (local.set $0 - (f32.const 15574585428672512) - ) - (block $label$15 - (call $log-i32 - (call $hashMemory) - ) - ) - ) - (nop) + (i32.eqz + (global.get $hangLimit) + ) + (return + (ref.null) ) - (nop) ) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) + ) + ) + (block $label$0 + (nop) (return - (f64.const 302456592) + (local.get $1) ) ) ) - (func $func_21_invoker + (func $func_29_invoker (drop - (call $func_21 - (f32.const 589308224) + (call $func_29 + (i32.const 2147483647) (ref.null) - (v128.const i32x4 0xffffff81 0x04070504 0x02007d03 0xfffffe00) + (ref.func $func_22_invoker) ) ) - (drop - (call $func_21 - (f32.const 168096624) - (ref.null) - (v128.const i32x4 0x4ed626fe 0x74770f63 0xdf000000 0x564a5657) - ) + (call $log-i32 + (call $hashMemory) ) (drop - (call $func_21 - (f32.const 707669312) + (call $func_29 + (i32.const -65535) + (ref.null) (ref.null) - (v128.const i32x4 0x0000001f 0xfc7f3000 0x00005c00 0x5f110d0f) ) ) (call $log-i32 (call $hashMemory) ) ) - (func $func_23 (param $0 v128) (result i64) - (local $1 i32) - (local $2 f64) - (local $3 f64) + (func $func_31 (param $0 f32) (result funcref i32 i64 nullref v128) + (local $1 i64) + (local $2 (f32 f32)) + (local $3 i32) + (local $4 i64) + (local $5 v128) (block (if (i32.eqz (global.get $hangLimit) ) (return - (i64.const 2147483646) + (tuple.make + (ref.func $func_24_invoker) + (i32.const 262144) + (i64.const 5580322043939276866) + (ref.null) + (v128.const i32x4 0x5e00164d 0x2c4108ff 0x0000f83a 0x00000400) + ) ) ) (global.set $hangLimit @@ -841,44 +929,130 @@ ) ) (block $label$0 - (local.set $3 - (local.tee $3 - (local.get $3) + (nop) + (return + (tuple.make + (ref.null) + (i32.const 268435456) + (i64.const 6944553142512654410) + (ref.null) + (v128.const i32x4 0x7fffffff 0x00000000 0x00006444 0x00000000) ) ) - (return - (i64.const 110) + ) + ) + (func $func_32 (param $0 f32) (param $1 f32) (result f32) + (block + (if + (i32.eqz + (global.get $hangLimit) + ) + (return + (local.get $1) + ) + ) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) ) ) + (f32.const 6.785077194130481e-28) ) - (func $func_23_invoker - (drop - (call $func_23 - (v128.const i32x4 0xf0000000 0x00000046 0x00080000 0x513d3229) + (func $func_33 (param $0 v128) (param $1 exnref) (param $2 v128) (param $3 v128) (param $4 anyref) (param $5 funcref) (param $6 anyref) (result nullref) + (local $7 anyref) + (local $8 (nullref nullref)) + (local $9 f64) + (local $10 nullref) + (local $11 nullref) + (local $12 i64) + (local $13 exnref) + (local $14 exnref) + (local $15 anyref) + (local $16 f32) + (local $17 f32) + (local $18 f64) + (block + (if + (i32.eqz + (global.get $hangLimit) + ) + (return + (ref.null) + ) + ) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) ) ) - (call $log-i32 - (call $hashMemory) + (block $label$0 + (nop) + (return + (local.get $10) + ) ) + ) + (func $func_33_invoker (drop - (call $func_23 - (v128.const i32x4 0x4409256e 0xff807c7c 0x0000ffa1 0x51378000) + (call $func_33 + (v128.const i32x4 0x80000001 0xffffff81 0xffff8000 0xfffffff0) + (ref.null) + (v128.const i32x4 0x46457378 0xffe0ffb8 0x0f0e0000 0x00807fff) + (v128.const i32x4 0x0f10001c 0x004a5b09 0x3722594b 0x53000000) + (ref.null) + (ref.null) + (ref.null) ) ) - (call $log-i32 - (call $hashMemory) + ) + (func $func_35 (result f64) + (local $0 f32) + (local $1 v128) + (local $2 funcref) + (local $3 anyref) + (block + (if + (i32.eqz + (global.get $hangLimit) + ) + (return + (f64.const 0) + ) + ) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) + ) + ) + (f64.const 2.6233847629195463e-33) + ) + (func $func_35_invoker + (drop + (call $func_35) ) ) - (func $func_25 (param $0 anyref) (param $1 nullref) (param $2 v128) (param $3 f64) (result exnref) + (func $func_37 (result f64) + (local $0 (f32 funcref f64 exnref anyref)) + (local $1 v128) + (local $2 anyref) + (local $3 nullref) (local $4 i64) - (local $5 nullref) + (local $5 (v128 anyref v128 funcref)) + (local $6 funcref) + (local $7 exnref) (block (if (i32.eqz (global.get $hangLimit) ) (return - (ref.null) + (f64.const 1799288964632556427869339e121) ) ) (global.set $hangLimit @@ -888,17 +1062,49 @@ ) ) ) - (ref.null) + (block $label$0 (result f64) + (call $log-exnref + (local.tee $7 + (local.tee $7 + (ref.null) + ) + ) + ) + (call $deNan64 + (f64.reinterpret_i64 + (local.get $4) + ) + ) + ) ) - (func $func_26 (param $0 v128) (param $1 i64) (param $2 nullref) (param $3 i64) (param $4 v128) (result f64) - (local $5 funcref) + (func $func_37_invoker + (drop + (call $func_37) + ) + (call $log-i32 + (call $hashMemory) + ) + (drop + (call $func_37) + ) + (call $log-i32 + (call $hashMemory) + ) + (drop + (call $func_37) + ) + (drop + (call $func_37) + ) + ) + (func $func_39 (param $0 nullref) (param $1 funcref) (param $2 i64) (result i64) (block (if (i32.eqz (global.get $hangLimit) ) (return - (f64.const 18505) + (local.get $2) ) ) (global.set $hangLimit @@ -908,34 +1114,148 @@ ) ) ) - (loop $label$0 (result f64) - (block - (if - (i32.eqz - (global.get $hangLimit) + (block $label$0 (result i64) + (nop) + (loop $label$1 (result i64) + (block + (if + (i32.eqz + (global.get $hangLimit) + ) + (return + (i64.const -536870912) + ) ) - (return - (f64.const -1) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) ) ) - (global.set $hangLimit - (i32.sub - (global.get $hangLimit) - (i32.const 1) + (block (result i64) + (block $label$2 + (local.set $2 + (i64.const -2097152) + ) + (if + (i32.eqz + (i32.const -2048) + ) + (block $label$3 + (if + (i32.eqz + (i32.const -1) + ) + (nop) + (nop) + ) + (local.set $2 + (if (result i64) + (i32.eqz + (i32.const 12) + ) + (block $label$4 (result i64) + (local.set $0 + (if (result nullref) + (i32.const -2147483648) + (block $label$5 (result nullref) + (i64.store8 offset=22 + (if (result i32) + (i32.eqz + (loop $label$6 (result i32) + (block + (if + (i32.eqz + (global.get $hangLimit) + ) + (return + (i64.const 8) + ) + ) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) + ) + ) + (block (result i32) + (if + (i32.const 319888671) + (nop) + (loop $label$7 + (block + (if + (i32.eqz + (global.get $hangLimit) + ) + (return + (local.get $2) + ) + ) + (global.set $hangLimit + (i32.sub + (global.get $hangLimit) + (i32.const 1) + ) + ) + ) + (block + (local.set $1 + (local.get $1) + ) + (br_if $label$7 + (i32.const 65535) + ) + (nop) + ) + ) + ) + (br_if $label$6 + (block $label$8 + (nop) + (br $label$1) + ) + ) + (i32.const 32) + ) + ) + ) + (block $label$9 (result i32) + (i32.const 640426599) + ) + (i32.const -127) + ) + (i64.const 1178066318063523073) + ) + (ref.null) + ) + (block $label$10 (result nullref) + (ref.null) + ) + ) + ) + (i64.const 268435456) + ) + (block $label$11 (result i64) + (local.get $2) + ) + ) + ) + ) + (block $label$12 + (nop) + ) + ) ) - ) - ) - (block (result f64) - (block $label$1 - (nop) - (call $log-v128 - (v128.const i32x4 0x00000000 0xc3e00000 0x00000000 0x403c0000) + (br_if $label$1 + (i32.eqz + (i32.const 453924633) + ) ) + (local.get $2) ) - (br_if $label$0 - (i32.const 127) - ) - (f64.const 2147483647) ) ) ) |