diff options
author | Alon Zakai <alonzakai@gmail.com> | 2019-02-08 11:43:02 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-08 11:43:02 -0800 |
commit | 9628a034ef51117a40e4509c023ad6d28af1b330 (patch) | |
tree | 4355dd4f2dd29d68c01b188869d7ff76198332de /test | |
parent | 5bd9908e94ba6ac1b12028b124b04c22a964d605 (diff) | |
download | binaryen-9628a034ef51117a40e4509c023ad6d28af1b330.tar.gz binaryen-9628a034ef51117a40e4509c023ad6d28af1b330.tar.bz2 binaryen-9628a034ef51117a40e4509c023ad6d28af1b330.zip |
legalize invokes even when doing minimal legalization, as js needs them (#1883)
See [emscripten-core/emscripten#7679
Diffstat (limited to 'test')
-rw-r--r-- | test/passes/legalize-js-interface-minimally.txt | 25 | ||||
-rw-r--r-- | test/passes/legalize-js-interface-minimally.wast | 2 |
2 files changed, 24 insertions, 3 deletions
diff --git a/test/passes/legalize-js-interface-minimally.txt b/test/passes/legalize-js-interface-minimally.txt index c9fab0fc0..2841ddb09 100644 --- a/test/passes/legalize-js-interface-minimally.txt +++ b/test/passes/legalize-js-interface-minimally.txt @@ -1,23 +1,29 @@ (module (type $FUNCSIG$j (func (result i64))) + (type $FUNCSIG$vj (func (param i64))) (type $FUNCSIG$vi (func (param i32))) + (type $legaltype$invoke_vj (func (param i32 i32))) (import "env" "imported" (func $imported (result i64))) (import "env" "setTempRet0" (func $setTempRet0 (param i32))) + (import "env" "invoke_vj" (func $legalimport$invoke_vj (param i32 i32))) (export "func" (func $func)) (export "dynCall_foo" (func $legalstub$dyn)) - (func $func (; 2 ;) (type $FUNCSIG$j) (result i64) + (func $func (; 3 ;) (type $FUNCSIG$j) (result i64) (drop (call $imported) ) + (call $legalfunc$invoke_vj + (i64.const 0) + ) (unreachable) ) - (func $dyn (; 3 ;) (type $FUNCSIG$j) (result i64) + (func $dyn (; 4 ;) (type $FUNCSIG$j) (result i64) (drop (call $imported) ) (unreachable) ) - (func $legalstub$dyn (; 4 ;) (result i32) + (func $legalstub$dyn (; 5 ;) (result i32) (local $0 i64) (local.set $0 (call $dyn) @@ -34,6 +40,19 @@ (local.get $0) ) ) + (func $legalfunc$invoke_vj (; 6 ;) (param $0 i64) + (call $legalimport$invoke_vj + (i32.wrap_i64 + (local.get $0) + ) + (i32.wrap_i64 + (i64.shr_u + (local.get $0) + (i64.const 32) + ) + ) + ) + ) ) (module ) diff --git a/test/passes/legalize-js-interface-minimally.wast b/test/passes/legalize-js-interface-minimally.wast index 2e003a521..e820734be 100644 --- a/test/passes/legalize-js-interface-minimally.wast +++ b/test/passes/legalize-js-interface-minimally.wast @@ -1,9 +1,11 @@ (module (import "env" "imported" (func $imported (result i64))) + (import "env" "invoke_vj" (func $invoke_vj (param i64))) (export "func" (func $func)) (export "dynCall_foo" (func $dyn)) (func $func (result i64) (drop (call $imported)) + (call $invoke_vj (i64.const 0)) (unreachable) ) (func $dyn (result i64) |