| (module | |
| (type $0 (func)) | |
| (type $1 (func (param i32) (result i32))) | |
| (type $2 (func (result i32))) | |
| (type $ii (func (param i32 i32))) | |
| (type $4 (func (param i32))) | |
| (type $5 (func (param f64))) | |
| (import "env" "STACKTOP" (global $STACKTOP$asm2wasm$import i32)) | |
| (import "env" "segfault" (func $segfault (param i32))) | |
| (global $__stack_pointer (mut i32) (global.get $STACKTOP$asm2wasm$import)) | |
| (memory $0 10) | |
| (table $0 1 1 funcref) | |
| (elem $0 (i32.const 0)) | |
| (func $nothing | |
| ) | |
| (func $not-alive | |
| (local $x i32) | |
| (local.set $x | |
| (i32.const 1) | |
| ) | |
| (call $nothing) | |
| ) | |
| (func $spill | |
| (local $x i32) | |
| (local $1 i32) | |
| (global.set $__stack_pointer | |
| (local.tee $1 | |
| (i32.sub | |
| (global.get $__stack_pointer) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (block | |
| (block | |
| (i32.store | |
| (local.get $1) | |
| (local.get $x) | |
| ) | |
| (call $nothing) | |
| ) | |
| (drop | |
| (local.get $x) | |
| ) | |
| ) | |
| (global.set $__stack_pointer | |
| (i32.add | |
| (local.get $1) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (func $ignore-non-pointers | |
| (local $x i32) | |
| (local $y i64) | |
| (local $z f32) | |
| (local $w f64) | |
| (local $4 i32) | |
| (global.set $__stack_pointer | |
| (local.tee $4 | |
| (i32.sub | |
| (global.get $__stack_pointer) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (block | |
| (local.set $x | |
| (i32.const 1) | |
| ) | |
| (local.set $y | |
| (i64.const 1) | |
| ) | |
| (local.set $z | |
| (f32.const 1) | |
| ) | |
| (local.set $w | |
| (f64.const 1) | |
| ) | |
| (block | |
| (i32.store | |
| (local.get $4) | |
| (local.get $x) | |
| ) | |
| (call $nothing) | |
| ) | |
| (drop | |
| (local.get $x) | |
| ) | |
| (drop | |
| (local.get $y) | |
| ) | |
| (drop | |
| (local.get $z) | |
| ) | |
| (drop | |
| (local.get $w) | |
| ) | |
| ) | |
| (global.set $__stack_pointer | |
| (i32.add | |
| (local.get $4) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (func $spill4 | |
| (local $x i32) | |
| (local $y i32) | |
| (local $z i32) | |
| (local $w i32) | |
| (local $4 i32) | |
| (global.set $__stack_pointer | |
| (local.tee $4 | |
| (i32.sub | |
| (global.get $__stack_pointer) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (block | |
| (local.set $x | |
| (i32.const 1) | |
| ) | |
| (local.set $y | |
| (i32.const 1) | |
| ) | |
| (local.set $z | |
| (i32.const 1) | |
| ) | |
| (local.set $w | |
| (i32.const 1) | |
| ) | |
| (block | |
| (i32.store | |
| (local.get $4) | |
| (local.get $x) | |
| ) | |
| (i32.store offset=4 | |
| (local.get $4) | |
| (local.get $y) | |
| ) | |
| (i32.store offset=8 | |
| (local.get $4) | |
| (local.get $z) | |
| ) | |
| (i32.store offset=12 | |
| (local.get $4) | |
| (local.get $w) | |
| ) | |
| (call $nothing) | |
| ) | |
| (drop | |
| (local.get $x) | |
| ) | |
| (drop | |
| (local.get $y) | |
| ) | |
| (drop | |
| (local.get $z) | |
| ) | |
| (drop | |
| (local.get $w) | |
| ) | |
| ) | |
| (global.set $__stack_pointer | |
| (i32.add | |
| (local.get $4) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (func $spill5 | |
| (local $x i32) | |
| (local $y i32) | |
| (local $z i32) | |
| (local $w i32) | |
| (local $a i32) | |
| (local $5 i32) | |
| (global.set $__stack_pointer | |
| (local.tee $5 | |
| (i32.sub | |
| (global.get $__stack_pointer) | |
| (i32.const 32) | |
| ) | |
| ) | |
| ) | |
| (block | |
| (local.set $x | |
| (i32.const 1) | |
| ) | |
| (local.set $y | |
| (i32.const 1) | |
| ) | |
| (local.set $z | |
| (i32.const 1) | |
| ) | |
| (local.set $w | |
| (i32.const 1) | |
| ) | |
| (local.set $a | |
| (i32.const 1) | |
| ) | |
| (block | |
| (i32.store | |
| (local.get $5) | |
| (local.get $x) | |
| ) | |
| (i32.store offset=4 | |
| (local.get $5) | |
| (local.get $y) | |
| ) | |
| (i32.store offset=8 | |
| (local.get $5) | |
| (local.get $z) | |
| ) | |
| (i32.store offset=12 | |
| (local.get $5) | |
| (local.get $w) | |
| ) | |
| (i32.store offset=16 | |
| (local.get $5) | |
| (local.get $a) | |
| ) | |
| (call $nothing) | |
| ) | |
| (drop | |
| (local.get $x) | |
| ) | |
| (drop | |
| (local.get $y) | |
| ) | |
| (drop | |
| (local.get $z) | |
| ) | |
| (drop | |
| (local.get $w) | |
| ) | |
| (drop | |
| (local.get $a) | |
| ) | |
| ) | |
| (global.set $__stack_pointer | |
| (i32.add | |
| (local.get $5) | |
| (i32.const 32) | |
| ) | |
| ) | |
| ) | |
| (func $some-alive | |
| (local $x i32) | |
| (local $y i32) | |
| (local $2 i32) | |
| (global.set $__stack_pointer | |
| (local.tee $2 | |
| (i32.sub | |
| (global.get $__stack_pointer) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (block | |
| (block | |
| (i32.store | |
| (local.get $2) | |
| (local.get $x) | |
| ) | |
| (call $nothing) | |
| ) | |
| (drop | |
| (local.get $x) | |
| ) | |
| ) | |
| (global.set $__stack_pointer | |
| (i32.add | |
| (local.get $2) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (func $spill-args (param $p i32) (param $q i32) | |
| (local $x i32) | |
| (local $3 i32) | |
| (local $4 i32) | |
| (local $5 i32) | |
| (global.set $__stack_pointer | |
| (local.tee $3 | |
| (i32.sub | |
| (global.get $__stack_pointer) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (block | |
| (block | |
| (local.set $4 | |
| (i32.const 1) | |
| ) | |
| (local.set $5 | |
| (i32.const 2) | |
| ) | |
| (i32.store offset=8 | |
| (local.get $3) | |
| (local.get $x) | |
| ) | |
| (call $spill-args | |
| (local.get $4) | |
| (local.get $5) | |
| ) | |
| ) | |
| (drop | |
| (local.get $x) | |
| ) | |
| ) | |
| (global.set $__stack_pointer | |
| (i32.add | |
| (local.get $3) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (func $spill-ret (result i32) | |
| (local $x i32) | |
| (local $1 i32) | |
| (local $2 i32) | |
| (local $3 i32) | |
| (local $4 i32) | |
| (global.set $__stack_pointer | |
| (local.tee $1 | |
| (i32.sub | |
| (global.get $__stack_pointer) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (local.set $4 | |
| (block (result i32) | |
| (block | |
| (i32.store | |
| (local.get $1) | |
| (local.get $x) | |
| ) | |
| (call $nothing) | |
| ) | |
| (drop | |
| (local.get $x) | |
| ) | |
| (if | |
| (i32.const 1) | |
| (then | |
| (local.set $2 | |
| (i32.const 2) | |
| ) | |
| (global.set $__stack_pointer | |
| (i32.add | |
| (local.get $1) | |
| (i32.const 16) | |
| ) | |
| ) | |
| (return | |
| (local.get $2) | |
| ) | |
| ) | |
| (else | |
| (local.set $3 | |
| (i32.const 3) | |
| ) | |
| (global.set $__stack_pointer | |
| (i32.add | |
| (local.get $1) | |
| (i32.const 16) | |
| ) | |
| ) | |
| (return | |
| (local.get $3) | |
| ) | |
| ) | |
| ) | |
| (i32.const 4) | |
| ) | |
| ) | |
| (global.set $__stack_pointer | |
| (i32.add | |
| (local.get $1) | |
| (i32.const 16) | |
| ) | |
| ) | |
| (local.get $4) | |
| ) | |
| (func $spill-unreachable (result i32) | |
| (local $x i32) | |
| (local $1 i32) | |
| (local $2 i32) | |
| (global.set $__stack_pointer | |
| (local.tee $1 | |
| (i32.sub | |
| (global.get $__stack_pointer) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (local.set $2 | |
| (block (result i32) | |
| (block | |
| (i32.store | |
| (local.get $1) | |
| (local.get $x) | |
| ) | |
| (call $nothing) | |
| ) | |
| (drop | |
| (local.get $x) | |
| ) | |
| (unreachable) | |
| ) | |
| ) | |
| (global.set $__stack_pointer | |
| (i32.add | |
| (local.get $1) | |
| (i32.const 16) | |
| ) | |
| ) | |
| (local.get $2) | |
| ) | |
| (func $spill-call-call0 (param $p i32) (result i32) | |
| (unreachable) | |
| ) | |
| (func $spill-call-call1 (param $p i32) (result i32) | |
| (local $x i32) | |
| (local $2 i32) | |
| (local $3 i32) | |
| (local $4 i32) | |
| (local $5 i32) | |
| (global.set $__stack_pointer | |
| (local.tee $2 | |
| (i32.sub | |
| (global.get $__stack_pointer) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (local.set $5 | |
| (block (result i32) | |
| (drop | |
| (block (result i32) | |
| (local.set $3 | |
| (block (result i32) | |
| (local.set $4 | |
| (i32.const 1) | |
| ) | |
| (i32.store offset=4 | |
| (local.get $2) | |
| (local.get $x) | |
| ) | |
| (call $spill-call-call1 | |
| (local.get $4) | |
| ) | |
| ) | |
| ) | |
| (i32.store offset=4 | |
| (local.get $2) | |
| (local.get $x) | |
| ) | |
| (call $spill-call-call0 | |
| (local.get $3) | |
| ) | |
| ) | |
| ) | |
| (local.get $x) | |
| ) | |
| ) | |
| (global.set $__stack_pointer | |
| (i32.add | |
| (local.get $2) | |
| (i32.const 16) | |
| ) | |
| ) | |
| (local.get $5) | |
| ) | |
| (func $spill-call-ret (param $p i32) (result i32) | |
| (local $x i32) | |
| (drop | |
| (call $spill-call-call0 | |
| (return | |
| (i32.const 1) | |
| ) | |
| ) | |
| ) | |
| (i32.const 0) | |
| ) | |
| (func $spill-ret-call (param $p i32) (result i32) | |
| (local $x i32) | |
| (drop | |
| (return | |
| (call $spill-call-call0 | |
| (i32.const 1) | |
| ) | |
| ) | |
| ) | |
| (i32.const 0) | |
| ) | |
| (func $spill-ret-ret (result i32) | |
| (local $x i32) | |
| (local $1 i32) | |
| (local $2 i32) | |
| (local $3 i32) | |
| (global.set $__stack_pointer | |
| (local.tee $1 | |
| (i32.sub | |
| (global.get $__stack_pointer) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (local.set $3 | |
| (block (result i32) | |
| (block | |
| (i32.store | |
| (local.get $1) | |
| (local.get $x) | |
| ) | |
| (call $nothing) | |
| ) | |
| (drop | |
| (local.get $x) | |
| ) | |
| (drop | |
| (block | |
| (global.set $__stack_pointer | |
| (i32.add | |
| (local.get $1) | |
| (i32.const 16) | |
| ) | |
| ) | |
| (return | |
| (block | |
| (local.set $2 | |
| (i32.const 1) | |
| ) | |
| (global.set $__stack_pointer | |
| (i32.add | |
| (local.get $1) | |
| (i32.const 16) | |
| ) | |
| ) | |
| (return | |
| (local.get $2) | |
| ) | |
| ) | |
| ) | |
| ) | |
| ) | |
| (i32.const 0) | |
| ) | |
| ) | |
| (global.set $__stack_pointer | |
| (i32.add | |
| (local.get $1) | |
| (i32.const 16) | |
| ) | |
| ) | |
| (local.get $3) | |
| ) | |
| (func $spill-call-othertype (param $y f64) | |
| (local $x i32) | |
| (local $2 i32) | |
| (local $3 f64) | |
| (global.set $__stack_pointer | |
| (local.tee $2 | |
| (i32.sub | |
| (global.get $__stack_pointer) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (block | |
| (block | |
| (local.set $3 | |
| (f64.const 1) | |
| ) | |
| (i32.store | |
| (local.get $2) | |
| (local.get $x) | |
| ) | |
| (call $spill-call-othertype | |
| (local.get $3) | |
| ) | |
| ) | |
| (drop | |
| (local.get $x) | |
| ) | |
| ) | |
| (global.set $__stack_pointer | |
| (i32.add | |
| (local.get $2) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (func $spill-call_indirect | |
| (local $x i32) | |
| (local $1 i32) | |
| (local $2 i32) | |
| (local $3 i32) | |
| (local $4 i32) | |
| (global.set $__stack_pointer | |
| (local.tee $1 | |
| (i32.sub | |
| (global.get $__stack_pointer) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (block | |
| (block | |
| (local.set $2 | |
| (i32.const 123) | |
| ) | |
| (local.set $3 | |
| (i32.const 456) | |
| ) | |
| (local.set $4 | |
| (i32.const 789) | |
| ) | |
| (i32.store | |
| (local.get $1) | |
| (local.get $x) | |
| ) | |
| (call_indirect (type $ii) | |
| (local.get $2) | |
| (local.get $3) | |
| (local.get $4) | |
| ) | |
| ) | |
| (drop | |
| (local.get $x) | |
| ) | |
| ) | |
| (global.set $__stack_pointer | |
| (i32.add | |
| (local.get $1) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (func $spill-call_import | |
| (local $x i32) | |
| (local $1 i32) | |
| (local $2 i32) | |
| (global.set $__stack_pointer | |
| (local.tee $1 | |
| (i32.sub | |
| (global.get $__stack_pointer) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (block | |
| (block | |
| (local.set $2 | |
| (i32.const 200) | |
| ) | |
| (i32.store | |
| (local.get $1) | |
| (local.get $x) | |
| ) | |
| (call $segfault | |
| (local.get $2) | |
| ) | |
| ) | |
| (drop | |
| (local.get $x) | |
| ) | |
| ) | |
| (global.set $__stack_pointer | |
| (i32.add | |
| (local.get $1) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| ) | |
| (module | |
| (type $0 (func)) | |
| (type $1 (func (result i32))) | |
| (type $2 (func (param i32) (result i32))) | |
| (type $ii (func (param i32 i32))) | |
| (type $4 (func (param i32))) | |
| (type $5 (func (param f64))) | |
| (import "env" "segfault" (func $segfault (param i32))) | |
| (global $__stack_pointer (mut i32) (i32.const 1716592)) | |
| (memory $0 10) | |
| (table $0 1 1 funcref) | |
| (elem $0 (i32.const 0)) | |
| (export "stackSave" (func $stack_save)) | |
| (func $stack_save (result i32) | |
| (global.get $__stack_pointer) | |
| ) | |
| (func $nothing | |
| ) | |
| (func $not-alive | |
| (local $x i32) | |
| (local.set $x | |
| (i32.const 1) | |
| ) | |
| (call $nothing) | |
| ) | |
| (func $spill | |
| (local $x i32) | |
| (local $1 i32) | |
| (global.set $__stack_pointer | |
| (local.tee $1 | |
| (i32.sub | |
| (global.get $__stack_pointer) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (block | |
| (block | |
| (i32.store | |
| (local.get $1) | |
| (local.get $x) | |
| ) | |
| (call $nothing) | |
| ) | |
| (drop | |
| (local.get $x) | |
| ) | |
| ) | |
| (global.set $__stack_pointer | |
| (i32.add | |
| (local.get $1) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (func $ignore-non-pointers | |
| (local $x i32) | |
| (local $y i64) | |
| (local $z f32) | |
| (local $w f64) | |
| (local $4 i32) | |
| (global.set $__stack_pointer | |
| (local.tee $4 | |
| (i32.sub | |
| (global.get $__stack_pointer) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (block | |
| (local.set $x | |
| (i32.const 1) | |
| ) | |
| (local.set $y | |
| (i64.const 1) | |
| ) | |
| (local.set $z | |
| (f32.const 1) | |
| ) | |
| (local.set $w | |
| (f64.const 1) | |
| ) | |
| (block | |
| (i32.store | |
| (local.get $4) | |
| (local.get $x) | |
| ) | |
| (call $nothing) | |
| ) | |
| (drop | |
| (local.get $x) | |
| ) | |
| (drop | |
| (local.get $y) | |
| ) | |
| (drop | |
| (local.get $z) | |
| ) | |
| (drop | |
| (local.get $w) | |
| ) | |
| ) | |
| (global.set $__stack_pointer | |
| (i32.add | |
| (local.get $4) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (func $spill4 | |
| (local $x i32) | |
| (local $y i32) | |
| (local $z i32) | |
| (local $w i32) | |
| (local $4 i32) | |
| (global.set $__stack_pointer | |
| (local.tee $4 | |
| (i32.sub | |
| (global.get $__stack_pointer) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (block | |
| (local.set $x | |
| (i32.const 1) | |
| ) | |
| (local.set $y | |
| (i32.const 1) | |
| ) | |
| (local.set $z | |
| (i32.const 1) | |
| ) | |
| (local.set $w | |
| (i32.const 1) | |
| ) | |
| (block | |
| (i32.store | |
| (local.get $4) | |
| (local.get $x) | |
| ) | |
| (i32.store offset=4 | |
| (local.get $4) | |
| (local.get $y) | |
| ) | |
| (i32.store offset=8 | |
| (local.get $4) | |
| (local.get $z) | |
| ) | |
| (i32.store offset=12 | |
| (local.get $4) | |
| (local.get $w) | |
| ) | |
| (call $nothing) | |
| ) | |
| (drop | |
| (local.get $x) | |
| ) | |
| (drop | |
| (local.get $y) | |
| ) | |
| (drop | |
| (local.get $z) | |
| ) | |
| (drop | |
| (local.get $w) | |
| ) | |
| ) | |
| (global.set $__stack_pointer | |
| (i32.add | |
| (local.get $4) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (func $spill5 | |
| (local $x i32) | |
| (local $y i32) | |
| (local $z i32) | |
| (local $w i32) | |
| (local $a i32) | |
| (local $5 i32) | |
| (global.set $__stack_pointer | |
| (local.tee $5 | |
| (i32.sub | |
| (global.get $__stack_pointer) | |
| (i32.const 32) | |
| ) | |
| ) | |
| ) | |
| (block | |
| (local.set $x | |
| (i32.const 1) | |
| ) | |
| (local.set $y | |
| (i32.const 1) | |
| ) | |
| (local.set $z | |
| (i32.const 1) | |
| ) | |
| (local.set $w | |
| (i32.const 1) | |
| ) | |
| (local.set $a | |
| (i32.const 1) | |
| ) | |
| (block | |
| (i32.store | |
| (local.get $5) | |
| (local.get $x) | |
| ) | |
| (i32.store offset=4 | |
| (local.get $5) | |
| (local.get $y) | |
| ) | |
| (i32.store offset=8 | |
| (local.get $5) | |
| (local.get $z) | |
| ) | |
| (i32.store offset=12 | |
| (local.get $5) | |
| (local.get $w) | |
| ) | |
| (i32.store offset=16 | |
| (local.get $5) | |
| (local.get $a) | |
| ) | |
| (call $nothing) | |
| ) | |
| (drop | |
| (local.get $x) | |
| ) | |
| (drop | |
| (local.get $y) | |
| ) | |
| (drop | |
| (local.get $z) | |
| ) | |
| (drop | |
| (local.get $w) | |
| ) | |
| (drop | |
| (local.get $a) | |
| ) | |
| ) | |
| (global.set $__stack_pointer | |
| (i32.add | |
| (local.get $5) | |
| (i32.const 32) | |
| ) | |
| ) | |
| ) | |
| (func $some-alive | |
| (local $x i32) | |
| (local $y i32) | |
| (local $2 i32) | |
| (global.set $__stack_pointer | |
| (local.tee $2 | |
| (i32.sub | |
| (global.get $__stack_pointer) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (block | |
| (block | |
| (i32.store | |
| (local.get $2) | |
| (local.get $x) | |
| ) | |
| (call $nothing) | |
| ) | |
| (drop | |
| (local.get $x) | |
| ) | |
| ) | |
| (global.set $__stack_pointer | |
| (i32.add | |
| (local.get $2) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (func $spill-args (param $p i32) (param $q i32) | |
| (local $x i32) | |
| (local $3 i32) | |
| (local $4 i32) | |
| (local $5 i32) | |
| (global.set $__stack_pointer | |
| (local.tee $3 | |
| (i32.sub | |
| (global.get $__stack_pointer) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (block | |
| (block | |
| (local.set $4 | |
| (i32.const 1) | |
| ) | |
| (local.set $5 | |
| (i32.const 2) | |
| ) | |
| (i32.store offset=8 | |
| (local.get $3) | |
| (local.get $x) | |
| ) | |
| (call $spill-args | |
| (local.get $4) | |
| (local.get $5) | |
| ) | |
| ) | |
| (drop | |
| (local.get $x) | |
| ) | |
| ) | |
| (global.set $__stack_pointer | |
| (i32.add | |
| (local.get $3) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (func $spill-ret (result i32) | |
| (local $x i32) | |
| (local $1 i32) | |
| (local $2 i32) | |
| (local $3 i32) | |
| (local $4 i32) | |
| (global.set $__stack_pointer | |
| (local.tee $1 | |
| (i32.sub | |
| (global.get $__stack_pointer) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (local.set $4 | |
| (block (result i32) | |
| (block | |
| (i32.store | |
| (local.get $1) | |
| (local.get $x) | |
| ) | |
| (call $nothing) | |
| ) | |
| (drop | |
| (local.get $x) | |
| ) | |
| (if | |
| (i32.const 1) | |
| (then | |
| (local.set $2 | |
| (i32.const 2) | |
| ) | |
| (global.set $__stack_pointer | |
| (i32.add | |
| (local.get $1) | |
| (i32.const 16) | |
| ) | |
| ) | |
| (return | |
| (local.get $2) | |
| ) | |
| ) | |
| (else | |
| (local.set $3 | |
| (i32.const 3) | |
| ) | |
| (global.set $__stack_pointer | |
| (i32.add | |
| (local.get $1) | |
| (i32.const 16) | |
| ) | |
| ) | |
| (return | |
| (local.get $3) | |
| ) | |
| ) | |
| ) | |
| (i32.const 4) | |
| ) | |
| ) | |
| (global.set $__stack_pointer | |
| (i32.add | |
| (local.get $1) | |
| (i32.const 16) | |
| ) | |
| ) | |
| (local.get $4) | |
| ) | |
| (func $spill-unreachable (result i32) | |
| (local $x i32) | |
| (local $1 i32) | |
| (local $2 i32) | |
| (global.set $__stack_pointer | |
| (local.tee $1 | |
| (i32.sub | |
| (global.get $__stack_pointer) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (local.set $2 | |
| (block (result i32) | |
| (block | |
| (i32.store | |
| (local.get $1) | |
| (local.get $x) | |
| ) | |
| (call $nothing) | |
| ) | |
| (drop | |
| (local.get $x) | |
| ) | |
| (unreachable) | |
| ) | |
| ) | |
| (global.set $__stack_pointer | |
| (i32.add | |
| (local.get $1) | |
| (i32.const 16) | |
| ) | |
| ) | |
| (local.get $2) | |
| ) | |
| (func $spill-call-call0 (param $p i32) (result i32) | |
| (unreachable) | |
| ) | |
| (func $spill-call-call1 (param $p i32) (result i32) | |
| (local $x i32) | |
| (local $2 i32) | |
| (local $3 i32) | |
| (local $4 i32) | |
| (local $5 i32) | |
| (global.set $__stack_pointer | |
| (local.tee $2 | |
| (i32.sub | |
| (global.get $__stack_pointer) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (local.set $5 | |
| (block (result i32) | |
| (drop | |
| (block (result i32) | |
| (local.set $3 | |
| (block (result i32) | |
| (local.set $4 | |
| (i32.const 1) | |
| ) | |
| (i32.store offset=4 | |
| (local.get $2) | |
| (local.get $x) | |
| ) | |
| (call $spill-call-call1 | |
| (local.get $4) | |
| ) | |
| ) | |
| ) | |
| (i32.store offset=4 | |
| (local.get $2) | |
| (local.get $x) | |
| ) | |
| (call $spill-call-call0 | |
| (local.get $3) | |
| ) | |
| ) | |
| ) | |
| (local.get $x) | |
| ) | |
| ) | |
| (global.set $__stack_pointer | |
| (i32.add | |
| (local.get $2) | |
| (i32.const 16) | |
| ) | |
| ) | |
| (local.get $5) | |
| ) | |
| (func $spill-call-ret (param $p i32) (result i32) | |
| (local $x i32) | |
| (drop | |
| (call $spill-call-call0 | |
| (return | |
| (i32.const 1) | |
| ) | |
| ) | |
| ) | |
| (i32.const 0) | |
| ) | |
| (func $spill-ret-call (param $p i32) (result i32) | |
| (local $x i32) | |
| (drop | |
| (return | |
| (call $spill-call-call0 | |
| (i32.const 1) | |
| ) | |
| ) | |
| ) | |
| (i32.const 0) | |
| ) | |
| (func $spill-ret-ret (result i32) | |
| (local $x i32) | |
| (local $1 i32) | |
| (local $2 i32) | |
| (local $3 i32) | |
| (global.set $__stack_pointer | |
| (local.tee $1 | |
| (i32.sub | |
| (global.get $__stack_pointer) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (local.set $3 | |
| (block (result i32) | |
| (block | |
| (i32.store | |
| (local.get $1) | |
| (local.get $x) | |
| ) | |
| (call $nothing) | |
| ) | |
| (drop | |
| (local.get $x) | |
| ) | |
| (drop | |
| (block | |
| (global.set $__stack_pointer | |
| (i32.add | |
| (local.get $1) | |
| (i32.const 16) | |
| ) | |
| ) | |
| (return | |
| (block | |
| (local.set $2 | |
| (i32.const 1) | |
| ) | |
| (global.set $__stack_pointer | |
| (i32.add | |
| (local.get $1) | |
| (i32.const 16) | |
| ) | |
| ) | |
| (return | |
| (local.get $2) | |
| ) | |
| ) | |
| ) | |
| ) | |
| ) | |
| (i32.const 0) | |
| ) | |
| ) | |
| (global.set $__stack_pointer | |
| (i32.add | |
| (local.get $1) | |
| (i32.const 16) | |
| ) | |
| ) | |
| (local.get $3) | |
| ) | |
| (func $spill-call-othertype (param $y f64) | |
| (local $x i32) | |
| (local $2 i32) | |
| (local $3 f64) | |
| (global.set $__stack_pointer | |
| (local.tee $2 | |
| (i32.sub | |
| (global.get $__stack_pointer) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (block | |
| (block | |
| (local.set $3 | |
| (f64.const 1) | |
| ) | |
| (i32.store | |
| (local.get $2) | |
| (local.get $x) | |
| ) | |
| (call $spill-call-othertype | |
| (local.get $3) | |
| ) | |
| ) | |
| (drop | |
| (local.get $x) | |
| ) | |
| ) | |
| (global.set $__stack_pointer | |
| (i32.add | |
| (local.get $2) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (func $spill-call_indirect | |
| (local $x i32) | |
| (local $1 i32) | |
| (local $2 i32) | |
| (local $3 i32) | |
| (local $4 i32) | |
| (global.set $__stack_pointer | |
| (local.tee $1 | |
| (i32.sub | |
| (global.get $__stack_pointer) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (block | |
| (block | |
| (local.set $2 | |
| (i32.const 123) | |
| ) | |
| (local.set $3 | |
| (i32.const 456) | |
| ) | |
| (local.set $4 | |
| (i32.const 789) | |
| ) | |
| (i32.store | |
| (local.get $1) | |
| (local.get $x) | |
| ) | |
| (call_indirect (type $ii) | |
| (local.get $2) | |
| (local.get $3) | |
| (local.get $4) | |
| ) | |
| ) | |
| (drop | |
| (local.get $x) | |
| ) | |
| ) | |
| (global.set $__stack_pointer | |
| (i32.add | |
| (local.get $1) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (func $spill-call_import | |
| (local $x i32) | |
| (local $1 i32) | |
| (local $2 i32) | |
| (global.set $__stack_pointer | |
| (local.tee $1 | |
| (i32.sub | |
| (global.get $__stack_pointer) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| (block | |
| (block | |
| (local.set $2 | |
| (i32.const 200) | |
| ) | |
| (i32.store | |
| (local.get $1) | |
| (local.get $x) | |
| ) | |
| (call $segfault | |
| (local.get $2) | |
| ) | |
| ) | |
| (drop | |
| (local.get $x) | |
| ) | |
| ) | |
| (global.set $__stack_pointer | |
| (i32.add | |
| (local.get $1) | |
| (i32.const 16) | |
| ) | |
| ) | |
| ) | |
| ) |