(module (type $none_=>_none (func)) (export "func_59_invoker" (func $0)) (func $0 (; has Stack IR ;) (unreachable) ) ) (module (type $none_=>_none (func)) (type $i32_=>_none (func (param i32))) (type $i32_=>_i32 (func (param i32) (result i32))) (type $none_=>_i32 (func (result i32))) (type $f64_f64_f64_f64_f64_f64_f64_=>_i32 (func (param f64 f64 f64 f64 f64 f64 f64) (result i32))) (type $none_=>_f64 (func (result f64))) (type $i32_=>_f64 (func (param i32) (result f64))) (import "env" "memory" (memory $1 1)) (data (i32.const 8) "\0d\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") (data (i32.const 40) "\1c\00\00\00~\00l\00i\00b\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $global$0 (mut i32) (i32.const 0)) (global $global$1 (mut i32) (i32.const 0)) (global $global$5 (mut i32) (i32.const 0)) (export "memory" (memory $0)) (export "table" (table $0)) (export "init" (func $assembly/index/init)) (export "step" (func $assembly/index/step)) (export "bench" (func $assembly/index/bench)) (export "getBody" (func $assembly/index/getBody)) (start $start) (func $~lib/allocator/arena/__memory_allocate (; has Stack IR ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (if (i32.gt_u (local.get $0) (i32.const 1073741824) ) (unreachable) ) (if (i32.gt_u (local.tee $0 (i32.and (i32.add (i32.add (local.tee $1 (global.get $global$1) ) (select (local.get $0) (i32.const 1) (i32.gt_u (local.get $0) (i32.const 1) ) ) ) (i32.const 7) ) (i32.const -8) ) ) (i32.shl (local.tee $2 (memory.size) ) (i32.const 16) ) ) (if (i32.lt_s (memory.grow (select (local.get $2) (local.tee $3 (i32.shr_u (i32.and (i32.add (i32.sub (local.get $0) (local.get $1) ) (i32.const 65535) ) (i32.const -65536) ) (i32.const 16) ) ) (i32.gt_s (local.get $2) (local.get $3) ) ) ) (i32.const 0) ) (if (i32.lt_s (memory.grow (local.get $3) ) (i32.const 0) ) (unreachable) ) ) ) (global.set $global$1 (local.get $0) ) (local.get $1) ) (func $assembly/index/NBodySystem#constructor (; has Stack IR ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 f64) (local $4 f64) (local $5 f64) (local $6 f64) (local $7 i32) (local.set $7 (i32.load offset=4 (local.get $0) ) ) (loop $label$3 (if (i32.lt_s (local.get $1) (local.get $7) ) (block (local.set $3 (f64.load offset=48 (local.tee $2 (i32.load offset=8 (i32.add (i32.load (local.get $0) ) (i32.shl (local.get $1) (i32.const 2) ) ) ) ) ) ) (local.set $4 (f64.add (local.get $4) (f64.mul (f64.load offset=24 (local.get $2) ) (local.get $3) ) ) ) (local.set $5 (f64.add (local.get $5) (f64.mul (f64.load offset=32 (local.get $2) ) (local.get $3) ) ) ) (local.set $6 (f64.add (local.get $6) (f64.mul (f64.load offset=40 (local.get $2) ) (local.get $3) ) ) ) (local.set $1 (i32.add (local.get $1) (i32.const 1) ) ) (br $label$3) ) ) ) (f64.store offset=24 (local.tee $1 (if (result i32) (i32.shr_u (i32.load (local.tee $1 (i32.load (local.get $0) ) ) ) (i32.const 2) ) (i32.load offset=8 (local.get $1) ) (unreachable) ) ) (f64.div (local.get $4) (f64.const -39.47841760435743) ) ) (f64.store offset=32 (local.get $1) (f64.div (local.get $5) (f64.const -39.47841760435743) ) ) (f64.store offset=40 (local.get $1) (f64.div (local.get $6) (f64.const -39.47841760435743) ) ) (i32.store (local.tee $1 (call $~lib/allocator/arena/__memory_allocate (i32.const 4) ) ) (local.get $0) ) (local.get $1) ) (func $assembly/index/Body#constructor (; has Stack IR ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 f64) (param $5 f64) (param $6 f64) (result i32) (local $7 i32) (f64.store (local.tee $7 (call $~lib/allocator/arena/__memory_allocate (i32.const 56) ) ) (local.get $0) ) (f64.store offset=8 (local.get $7) (local.get $1) ) (f64.store offset=16 (local.get $7) (local.get $2) ) (f64.store offset=24 (local.get $7) (local.get $3) ) (f64.store offset=32 (local.get $7) (local.get $4) ) (f64.store offset=40 (local.get $7) (local.get $5) ) (f64.store offset=48 (local.get $7) (local.get $6) ) (local.get $7) ) (func $~lib/internal/memory/memset (; has Stack IR ;) (param $0 i32) (local $1 i32) (local $2 i32) (i32.store8 (local.get $0) (i32.const 0) ) (i32.store8 (i32.sub (local.tee $1 (i32.add (local.get $0) (i32.const 20) ) ) (i32.const 1) ) (i32.const 0) ) (i32.store8 (i32.add (local.get $0) (i32.const 1) ) (i32.const 0) ) (i32.store8 (i32.add (local.get $0) (i32.const 2) ) (i32.const 0) ) (i32.store8 (i32.sub (local.get $1) (i32.const 2) ) (i32.const 0) ) (i32.store8 (i32.sub (local.get $1) (i32.const 3) ) (i32.const 0) ) (i32.store8 (i32.add (local.get $0) (i32.const 3) ) (i32.const 0) ) (i32.store8 (i32.sub (local.get $1) (i32.const 4) ) (i32.const 0) ) (i32.store (local.tee $0 (i32.add (local.tee $1 (i32.and (i32.sub (i32.const 0) (local.get $0) ) (i32.const 3) ) ) (local.get $0) ) ) (i32.const 0) ) (i32.store (i32.sub (i32.add (local.tee $1 (i32.and (i32.sub (i32.const 20) (local.get $1) ) (i32.const -4) ) ) (local.get $0) ) (i32.const 4) ) (i32.const 0) ) (if (i32.le_u (local.get $1) (i32.const 8) ) (return) ) (i32.store (i32.add (local.get $0) (i32.const 4) ) (i32.const 0) ) (i32.store (i32.add (local.get $0) (i32.const 8) ) (i32.const 0) ) (i32.store (i32.sub (local.tee $2 (i32.add (local.get $0) (local.get $1) ) ) (i32.const 12) ) (i32.const 0) ) (i32.store (i32.sub (local.get $2) (i32.const 8) ) (i32.const 0) ) (if (i32.le_u (local.get $1) (i32.const 24) ) (return) ) (i32.store (i32.add (local.get $0) (i32.const 12) ) (i32.const 0) ) (i32.store (i32.add (local.get $0) (i32.const 16) ) (i32.const 0) ) (i32.store (i32.add (local.get $0) (i32.const 20) ) (i32.const 0) ) (i32.store (i32.add (local.get $0) (i32.const 24) ) (i32.const 0) ) (i32.store (i32.sub (local.tee $2 (i32.add (local.get $0) (local.get $1) ) ) (i32.const 28) ) (i32.const 0) ) (i32.store (i32.sub (local.get $2) (i32.const 24) ) (i32.const 0) ) (i32.store (i32.sub (local.get $2) (i32.const 20) ) (i32.const 0) ) (i32.store (i32.sub (local.get $2) (i32.const 16) ) (i32.const 0) ) (local.set $0 (i32.add (local.tee $2 (i32.add (i32.and (local.get $0) (i32.const 4) ) (i32.const 24) ) ) (local.get $0) ) ) (local.set $1 (i32.sub (local.get $1) (local.get $2) ) ) (loop $label$8 (if (i32.ge_u (local.get $1) (i32.const 32) ) (block (i64.store (local.get $0) (i64.const 0) ) (i64.store (i32.add (local.get $0) (i32.const 8) ) (i64.const 0) ) (i64.store (i32.add (local.get $0) (i32.const 16) ) (i64.const 0) ) (i64.store (i32.add (local.get $0) (i32.const 24) ) (i64.const 0) ) (local.set $1 (i32.sub (local.get $1) (i32.const 32) ) ) (local.set $0 (i32.add (local.get $0) (i32.const 32) ) ) (br $label$8) ) ) ) ) (func $~lib/array/Array#constructor (; has Stack IR ;) (result i32) (local $0 i32) (local $1 i32) (i32.store (local.tee $1 (call $~lib/allocator/arena/__memory_allocate (i32.const 32) ) ) (i32.const 20) ) (i32.store (local.tee $0 (call $~lib/allocator/arena/__memory_allocate (i32.const 8) ) ) (i32.const 0) ) (i32.store offset=4 (local.get $0) (i32.const 0) ) (i32.store (local.get $0) (local.get $1) ) (i32.store offset=4 (local.get $0) (i32.const 5) ) (call $~lib/internal/memory/memset (i32.add (local.get $1) (i32.const 8) ) ) (local.get $0) ) (func $assembly/index/init (; has Stack IR ;) (local $0 i32) (local $1 i32) (local.set $1 (call $~lib/array/Array#constructor) ) (local.set $0 (call $assembly/index/Body#constructor (f64.const 0) (f64.const 0) (f64.const 0) (f64.const 0) (f64.const 0) (f64.const 0) (f64.const 39.47841760435743) ) ) (i32.store offset=8 (i32.load (local.get $1) ) (local.get $0) ) (local.set $0 (call $assembly/index/Body#constructor (f64.const 4.841431442464721) (f64.const -1.1603200440274284) (f64.const -0.10362204447112311) (f64.const 0.606326392995832) (f64.const 2.81198684491626) (f64.const -0.02521836165988763) (f64.const 0.03769367487038949) ) ) (i32.store offset=8 (i32.add (i32.load (local.get $1) ) (i32.const 4) ) (local.get $0) ) (local.set $0 (call $assembly/index/Body#constructor (f64.const 8.34336671824458) (f64.const 4.124798564124305) (f64.const -0.4035234171143214) (f64.const -1.0107743461787924) (f64.const 1.8256623712304119) (f64.const 0.008415761376584154) (f64.const 0.011286326131968767) ) ) (i32.store offset=8 (i32.add (i32.load (local.get $1) ) (i32.const 8) ) (local.get $0) ) (local.set $0 (call $assembly/index/Body#constructor (f64.const 12.894369562139131) (f64.const -15.111151401698631) (f64.const -0.22330757889265573) (f64.const 1.0827910064415354) (f64.const 0.8687130181696082) (f64.const -0.010832637401363636) (f64.const 1.7237240570597112e-03) ) ) (i32.store offset=8 (i32.add (i32.load (local.get $1) ) (i32.const 12) ) (local.get $0) ) (local.set $0 (call $assembly/index/Body#constructor (f64.const 15.379697114850917) (f64.const -25.919314609987964) (f64.const 0.17925877295037118) (f64.const 0.979090732243898) (f64.const 0.5946989986476762) (f64.const -0.034755955504078104) (f64.const 2.0336868699246304e-03) ) ) (i32.store offset=8 (i32.add (i32.load (local.get $1) ) (i32.const 16) ) (local.get $0) ) (global.set $global$5 (call $assembly/index/NBodySystem#constructor (local.get $1) ) ) ) (func $assembly/index/NBodySystem#advance (; has Stack IR ;) (param $0 i32) (local $1 i32) (local $2 f64) (local $3 i32) (local $4 f64) (local $5 f64) (local $6 f64) (local $7 i32) (local $8 f64) (local $9 f64) (local $10 f64) (local $11 f64) (local $12 i32) (local $13 i32) (local $14 f64) (local $15 f64) (local $16 f64) (local $17 f64) (local.set $13 (i32.load offset=4 (local.tee $12 (i32.load (local.get $0) ) ) ) ) (loop $label$3 (if (i32.lt_u (local.get $3) (local.get $13) ) (block (local.set $14 (f64.load (local.tee $0 (i32.load offset=8 (i32.add (i32.load (local.get $12) ) (i32.shl (local.get $3) (i32.const 2) ) ) ) ) ) ) (local.set $15 (f64.load offset=8 (local.get $0) ) ) (local.set $16 (f64.load offset=16 (local.get $0) ) ) (local.set $4 (f64.load offset=24 (local.get $0) ) ) (local.set $5 (f64.load offset=32 (local.get $0) ) ) (local.set $6 (f64.load offset=40 (local.get $0) ) ) (local.set $17 (f64.load offset=48 (local.get $0) ) ) (local.set $7 (i32.add (local.get $3) (i32.const 1) ) ) (loop $label$6 (if (i32.lt_u (local.get $7) (local.get $13) ) (block (local.set $11 (f64.sqrt (local.tee $8 (f64.add (f64.add (f64.mul (local.tee $2 (f64.sub (local.get $14) (f64.load (local.tee $1 (i32.load offset=8 (i32.add (i32.load (local.get $12) ) (i32.shl (local.get $7) (i32.const 2) ) ) ) ) ) ) ) (local.get $2) ) (f64.mul (local.tee $9 (f64.sub (local.get $15) (f64.load offset=8 (local.get $1) ) ) ) (local.get $9) ) ) (f64.mul (local.tee $10 (f64.sub (local.get $16) (f64.load offset=16 (local.get $1) ) ) ) (local.get $10) ) ) ) ) ) (local.set $4 (f64.sub (local.get $4) (f64.mul (local.get $2) (local.tee $8 (f64.mul (f64.load offset=48 (local.get $1) ) (local.tee $11 (f64.div (f64.const 0.01) (f64.mul (local.get $8) (local.get $11) ) ) ) ) ) ) ) ) (local.set $5 (f64.sub (local.get $5) (f64.mul (local.get $9) (local.get $8) ) ) ) (local.set $6 (f64.sub (local.get $6) (f64.mul (local.get $10) (local.get $8) ) ) ) (f64.store offset=24 (local.get $1) (f64.add (f64.load offset=24 (local.get $1) ) (f64.mul (local.get $2) (local.tee $2 (f64.mul (local.get $17) (local.get $11) ) ) ) ) ) (f64.store offset=32 (local.get $1) (f64.add (f64.load offset=32 (local.get $1) ) (f64.mul (local.get $9) (local.get $2) ) ) ) (f64.store offset=40 (local.get $1) (f64.add (f64.load offset=40 (local.get $1) ) (f64.mul (local.get $10) (local.get $2) ) ) ) (local.set $7 (i32.add (local.get $7) (i32.const 1) ) ) (br $label$6) ) ) ) (f64.store offset=24 (local.get $0) (local.get $4) ) (f64.store offset=32 (local.get $0) (local.get $5) ) (f64.store offset=40 (local.get $0) (local.get $6) ) (f64.store (local.get $0) (f64.add (f64.load (local.get $0) ) (f64.mul (local.get $4) (f64.const 0.01) ) ) ) (f64.store offset=8 (local.get $0) (f64.add (f64.load offset=8 (local.get $0) ) (f64.mul (local.get $5) (f64.const 0.01) ) ) ) (f64.store offset=16 (local.get $0) (f64.add (f64.load offset=16 (local.get $0) ) (f64.mul (local.get $6) (f64.const 0.01) ) ) ) (local.set $3 (i32.add (local.get $3) (i32.const 1) ) ) (br $label$3) ) ) ) ) (func $assembly/index/NBodySystem#energy (; has Stack IR ;) (param $0 i32) (result f64) (local $1 f64) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 f64) (local $7 f64) (local $8 f64) (local $9 f64) (local $10 f64) (local.set $5 (i32.load offset=4 (local.tee $4 (i32.load (local.get $0) ) ) ) ) (loop $label$4 (if (i32.lt_u (local.get $2) (local.get $5) ) (block (local.set $7 (f64.load (local.tee $0 (i32.load offset=8 (i32.add (i32.load (local.get $4) ) (i32.shl (local.get $2) (i32.const 2) ) ) ) ) ) ) (local.set $8 (f64.load offset=8 (local.get $0) ) ) (local.set $9 (f64.load offset=16 (local.get $0) ) ) (local.set $1 (f64.add (local.get $1) (f64.mul (f64.mul (local.tee $10 (f64.load offset=48 (local.get $0) ) ) (f64.const 0.5) ) (f64.add (f64.add (f64.mul (local.tee $1 (f64.load offset=24 (local.get $0) ) ) (local.get $1) ) (f64.mul (local.tee $1 (f64.load offset=32 (local.get $0) ) ) (local.get $1) ) ) (f64.mul (local.tee $1 (f64.load offset=40 (local.get $0) ) ) (local.get $1) ) ) ) ) ) (local.set $0 (i32.add (local.get $2) (i32.const 1) ) ) (loop $label$7 (if (i32.lt_u (local.get $0) (local.get $5) ) (block (local.set $6 (f64.sub (local.get $7) (f64.load (local.tee $3 (i32.load offset=8 (i32.add (i32.load (local.get $4) ) (i32.shl (local.get $0) (i32.const 2) ) ) ) ) ) ) ) (local.set $1 (f64.sub (local.get $1) (f64.div (f64.mul (local.get $10) (f64.load offset=48 (local.get $3) ) ) (f64.sqrt (f64.add (f64.add (f64.mul (local.get $6) (local.get $6) ) (f64.mul (local.tee $1 (f64.sub (local.get $8) (f64.load offset=8 (local.get $3) ) ) ) (local.get $1) ) ) (f64.mul (local.tee $1 (f64.sub (local.get $9) (f64.load offset=16 (local.get $3) ) ) ) (local.get $1) ) ) ) ) ) ) (local.set $0 (i32.add (local.get $0) (i32.const 1) ) ) (br $label$7) ) ) ) (local.set $2 (i32.add (local.get $2) (i32.const 1) ) ) (br $label$4) ) ) ) (local.get $1) ) (func $assembly/index/step (; has Stack IR ;) (result f64) (call $assembly/index/NBodySystem#advance (global.get $global$5) ) (call $assembly/index/NBodySystem#energy (global.get $global$5) ) ) (func $assembly/index/bench (; has Stack IR ;) (param $0 i32) (local $1 i32) (block $label$1 (loop $label$2 (br_if $label$1 (i32.le_u (local.get $0) (local.get $1) ) ) (call $assembly/index/NBodySystem#advance (global.get $global$5) ) (local.set $1 (i32.add (local.get $1) (i32.const 1) ) ) (br $label$2) ) ) ) (func $assembly/index/getBody (; has Stack IR ;) (param $0 i32) (result i32) (local $1 i32) (if (result i32) (i32.gt_u (i32.load offset=4 (local.tee $1 (i32.load (global.get $global$5) ) ) ) (local.get $0) ) (if (result i32) (i32.gt_u (i32.shr_u (i32.load (local.tee $1 (i32.load (local.get $1) ) ) ) (i32.const 2) ) (local.get $0) ) (i32.load offset=8 (i32.add (i32.shl (local.get $0) (i32.const 2) ) (local.get $1) ) ) (unreachable) ) (i32.const 0) ) ) (func $start (; has Stack IR ;) (global.set $global$0 (i32.const 104) ) (global.set $global$1 (i32.const 104) ) ) (func $null (; has Stack IR ;) (nop) ) )