summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2019-02-08 11:43:02 -0800
committerGitHub <noreply@github.com>2019-02-08 11:43:02 -0800
commit9628a034ef51117a40e4509c023ad6d28af1b330 (patch)
tree4355dd4f2dd29d68c01b188869d7ff76198332de /test
parent5bd9908e94ba6ac1b12028b124b04c22a964d605 (diff)
downloadbinaryen-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.txt25
-rw-r--r--test/passes/legalize-js-interface-minimally.wast2
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)