Add a 'call_indirect' builtin to emit arbitrary calls (might trap at runtime); Optimize 'for' loop compilation a bit

This commit is contained in:
dcodeIO
2018-05-25 15:59:17 +02:00
parent 51ede113dd
commit 7ad13f9d65
47 changed files with 3311 additions and 22111 deletions

View File

@ -13,7 +13,7 @@
(set_global $for/i
(i32.const 0)
)
(loop $loop|0
(loop $repeat|0
(br_if $break|0
(i32.ge_s
(get_global $for/i)
@ -26,7 +26,7 @@
(i32.const 1)
)
)
(br $loop|0)
(br $repeat|0)
)
)
(if
@ -45,7 +45,7 @@
)
)
(block $break|1
(loop $loop|1
(loop $repeat|1
(br_if $break|1
(i32.ge_s
(get_local $0)
@ -58,11 +58,11 @@
(i32.const 1)
)
)
(br $loop|1)
(br $repeat|1)
)
)
(block $break|2
(loop $loop|2
(loop $repeat|2
(br_if $break|2
(i32.le_s
(get_global $for/i)
@ -75,7 +75,7 @@
(i32.const 1)
)
)
(br $loop|2)
(br $repeat|2)
)
)
(if
@ -91,7 +91,7 @@
)
)
(block $break|3
(loop $loop|3
(loop $repeat|3
(br_if $break|3
(i32.eq
(get_global $for/i)
@ -104,17 +104,17 @@
(i32.const 1)
)
)
(br $loop|3)
(br $repeat|3)
)
)
(loop $loop|4
(loop $repeat|4
(set_global $for/i
(i32.sub
(get_global $for/i)
(i32.const 1)
)
)
(br_if $loop|4
(br_if $repeat|4
(get_global $for/i)
)
)
@ -122,7 +122,7 @@
(set_local $0
(i32.const 0)
)
(loop $loop|5
(loop $repeat|5
(br_if $break|5
(i32.ge_s
(get_local $0)
@ -135,7 +135,7 @@
(i32.const 1)
)
)
(br $loop|5)
(br $repeat|5)
)
)
(if