Make sure all roots are iterated by delaying builtin generation; Cleanup

This commit is contained in:
dcodeIO
2018-07-20 20:32:25 +02:00
parent 41ad2f8a70
commit 2fa7d6678c
11 changed files with 411 additions and 871 deletions

View File

@ -34,27 +34,14 @@
(i32.const 0)
(i32.const 8)
(i32.const 14)
(i32.const 40)
(i32.const 37)
)
(unreachable)
)
)
)
(func $start (; 2 ;) (type $v)
(call_indirect (type $iv)
(i32.const 8)
(i32.const 0)
)
(call_indirect (type $iv)
(get_global $std/gc-integration/B.d)
(i32.const 0)
)
(call_indirect (type $iv)
(get_global $std/gc-integration/a_ref)
(i32.const 0)
)
(call_indirect (type $iv)
(get_global $std/gc-integration/b_ref)
(call $~iterateRoots
(i32.const 0)
)
(if
@ -73,4 +60,22 @@
)
)
)
(func $~iterateRoots (; 3 ;) (type $iv) (param $0 i32)
(call_indirect (type $iv)
(i32.const 8)
(get_local $0)
)
(call_indirect (type $iv)
(get_global $std/gc-integration/B.d)
(get_local $0)
)
(call_indirect (type $iv)
(get_global $std/gc-integration/a_ref)
(get_local $0)
)
(call_indirect (type $iv)
(get_global $std/gc-integration/b_ref)
(get_local $0)
)
)
)