Files

1268 lines
28 KiB
Plaintext

(module $ludcmp.wasm
(type (;0;) (func (param i32 i32)))
(type (;1;) (func))
(type (;2;) (func (param i32 f64) (result i32)))
(type (;3;) (func (result i32)))
(import "__pragma" "loopbound" (func $__pragma_loopbound (type 0)))
(func $__wasm_apply_data_relocs (type 1))
(func $ludcmp_init (type 1)
(local i32 i32 i32 i32 i32 f64 f64 f64)
global.get $__stack_pointer
i32.const 16
i32.sub
local.tee 0
global.set $__stack_pointer
local.get 0
i32.const 0
i32.store offset=12
i32.const 6
i32.const 6
call $__pragma_loopbound
i32.const 6
i32.const 6
call $__pragma_loopbound
i32.const 0
i64.const 4626322717216342016
i64.store offset=1024
block ;; label = @1
local.get 0
i32.load offset=12
i32.eqz
br_if 0 (;@1;)
i32.const 0
local.get 0
i32.load offset=12
f64.convert_i32_s
f64.const 0x1.4p+4 (;=20;)
f64.add
f64.store offset=1024
end
i32.const 0
i64.const 4613937818241073152
i64.store offset=1032
block ;; label = @1
local.get 0
i32.load offset=12
i32.eqz
br_if 0 (;@1;)
i32.const 0
local.get 0
i32.load offset=12
f64.convert_i32_s
f64.const 0x1.8p+1 (;=3;)
f64.add
f64.store offset=1032
end
i32.const 0
i64.const 4616189618054758400
i64.store offset=1040
block ;; label = @1
local.get 0
i32.load offset=12
i32.eqz
br_if 0 (;@1;)
i32.const 0
local.get 0
i32.load offset=12
f64.convert_i32_s
f64.const 0x1p+2 (;=4;)
f64.add
f64.store offset=1040
end
i32.const 0
i64.const 4617315517961601024
i64.store offset=1048
block ;; label = @1
local.get 0
i32.load offset=12
i32.eqz
br_if 0 (;@1;)
i32.const 0
local.get 0
i32.load offset=12
f64.convert_i32_s
f64.const 0x1.4p+2 (;=5;)
f64.add
f64.store offset=1048
end
i32.const 0
i64.const 4618441417868443648
i64.store offset=1056
block ;; label = @1
local.get 0
i32.load offset=12
i32.eqz
br_if 0 (;@1;)
i32.const 0
local.get 0
i32.load offset=12
f64.convert_i32_s
f64.const 0x1.8p+2 (;=6;)
f64.add
f64.store offset=1056
end
i32.const 0
i64.const 4619567317775286272
i64.store offset=1064
block ;; label = @1
local.get 0
i32.load offset=12
i32.eqz
br_if 0 (;@1;)
i32.const 0
local.get 0
i32.load offset=12
f64.convert_i32_s
f64.const 0x1.cp+2 (;=7;)
f64.add
f64.store offset=1064
end
i32.const 0
i64.const 4631530004285489152
i64.store offset=21024
block ;; label = @1
local.get 0
i32.load offset=12
i32.eqz
br_if 0 (;@1;)
i32.const 0
local.get 0
i32.load offset=12
f64.convert_i32_s
f64.const 0x1.68p+5 (;=45;)
f64.add
f64.store offset=21024
end
i32.const 6
i32.const 6
call $__pragma_loopbound
i32.const 0
i64.const 4613937818241073152
i64.store offset=1424
block ;; label = @1
local.get 0
i32.load offset=12
i32.eqz
br_if 0 (;@1;)
i32.const 0
local.get 0
i32.load offset=12
f64.convert_i32_s
f64.const 0x1.8p+1 (;=3;)
f64.add
f64.store offset=1424
end
i32.const 0
i64.const 4630826316843712512
i64.store offset=1432
block ;; label = @1
local.get 0
i32.load offset=12
i32.eqz
br_if 0 (;@1;)
i32.const 0
local.get 0
i32.load offset=12
f64.convert_i32_s
f64.const 0x1.4p+5 (;=40;)
f64.add
f64.store offset=1432
end
i32.const 0
i64.const 4617315517961601024
i64.store offset=1440
block ;; label = @1
local.get 0
i32.load offset=12
i32.eqz
br_if 0 (;@1;)
i32.const 0
local.get 0
i32.load offset=12
f64.convert_i32_s
f64.const 0x1.4p+2 (;=5;)
f64.add
f64.store offset=1440
end
i32.const 0
i64.const 4618441417868443648
i64.store offset=1448
block ;; label = @1
local.get 0
i32.load offset=12
i32.eqz
br_if 0 (;@1;)
i32.const 0
local.get 0
i32.load offset=12
f64.convert_i32_s
f64.const 0x1.8p+2 (;=6;)
f64.add
f64.store offset=1448
end
i32.const 0
i64.const 4619567317775286272
i64.store offset=1456
block ;; label = @1
local.get 0
i32.load offset=12
i32.eqz
br_if 0 (;@1;)
i32.const 0
local.get 0
i32.load offset=12
f64.convert_i32_s
f64.const 0x1.cp+2 (;=7;)
f64.add
f64.store offset=1456
end
i32.const 0
i64.const 4620693217682128896
i64.store offset=1464
block ;; label = @1
local.get 0
i32.load offset=12
i32.eqz
br_if 0 (;@1;)
i32.const 0
local.get 0
i32.load offset=12
f64.convert_i32_s
f64.const 0x1p+3 (;=8;)
f64.add
f64.store offset=1464
end
i32.const 0
i64.const 4634555860285128704
i64.store offset=21032
block ;; label = @1
local.get 0
i32.load offset=12
i32.eqz
br_if 0 (;@1;)
i32.const 0
local.get 0
i32.load offset=12
f64.convert_i32_s
f64.const 0x1.14p+6 (;=69;)
f64.add
f64.store offset=21032
end
i32.const 1024
local.set 1
i32.const 21040
local.set 2
i32.const 9
local.set 3
loop ;; label = @1
i32.const 6
i32.const 6
call $__pragma_loopbound
local.get 1
i32.const 800
i32.add
local.tee 4
local.get 3
i32.const -5
i32.add
f64.convert_i32_u
local.tee 5
f64.store
block ;; label = @2
local.get 0
i32.load offset=12
i32.eqz
br_if 0 (;@2;)
local.get 4
local.get 5
local.get 0
i32.load offset=12
f64.convert_i32_s
f64.add
f64.store
end
local.get 1
i32.const 808
i32.add
local.tee 4
local.get 3
i32.const -4
i32.add
f64.convert_i32_u
local.tee 6
f64.store
local.get 5
local.get 6
f64.add
local.set 7
block ;; label = @2
local.get 0
i32.load offset=12
i32.eqz
br_if 0 (;@2;)
local.get 4
local.get 6
local.get 0
i32.load offset=12
f64.convert_i32_s
f64.add
f64.store
end
local.get 1
i32.const 816
i32.add
local.tee 4
i32.const 60
local.get 3
i32.const -3
i32.add
local.get 3
i32.const 9
i32.eq
select
f64.convert_i32_u
local.tee 5
f64.store
local.get 7
local.get 5
f64.add
local.set 6
block ;; label = @2
local.get 0
i32.load offset=12
i32.eqz
br_if 0 (;@2;)
local.get 4
local.get 5
local.get 0
i32.load offset=12
f64.convert_i32_s
f64.add
f64.store
end
local.get 1
i32.const 824
i32.add
local.tee 4
i32.const 80
local.get 3
i32.const -2
i32.add
local.get 3
i32.const 10
i32.eq
select
f64.convert_i32_u
local.tee 5
f64.store
local.get 6
local.get 5
f64.add
local.set 6
block ;; label = @2
local.get 0
i32.load offset=12
i32.eqz
br_if 0 (;@2;)
local.get 4
local.get 5
local.get 0
i32.load offset=12
f64.convert_i32_s
f64.add
f64.store
end
local.get 1
i32.const 832
i32.add
local.tee 4
i32.const 100
local.get 3
i32.const -1
i32.add
local.get 3
i32.const 11
i32.eq
select
f64.convert_i32_u
local.tee 5
f64.store
local.get 6
local.get 5
f64.add
local.set 6
block ;; label = @2
local.get 0
i32.load offset=12
i32.eqz
br_if 0 (;@2;)
local.get 4
local.get 5
local.get 0
i32.load offset=12
f64.convert_i32_s
f64.add
f64.store
end
local.get 1
i32.const 840
i32.add
local.tee 4
i32.const 120
local.get 3
local.get 3
i32.const 12
i32.eq
select
f64.convert_i32_u
local.tee 5
f64.store
local.get 6
local.get 5
f64.add
local.set 6
block ;; label = @2
local.get 0
i32.load offset=12
i32.eqz
br_if 0 (;@2;)
local.get 4
local.get 5
local.get 0
i32.load offset=12
f64.convert_i32_s
f64.add
f64.store
end
local.get 2
local.get 6
f64.store
block ;; label = @2
local.get 0
i32.load offset=12
i32.eqz
br_if 0 (;@2;)
local.get 2
local.get 6
local.get 0
i32.load offset=12
f64.convert_i32_s
f64.add
f64.store
end
local.get 2
i32.const 8
i32.add
local.set 2
local.get 1
i32.const 400
i32.add
local.set 1
local.get 3
i32.const 1
i32.add
local.tee 3
i32.const 13
i32.ne
br_if 0 (;@1;)
end
local.get 0
i32.const 16
i32.add
global.set $__stack_pointer)
(func $ludcmp_test (type 2) (param i32 f64) (result i32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 f64 i32 i32 i32 i32 i32 i32 i32 i32 i32)
global.get $__stack_pointer
i32.const 800
i32.sub
local.tee 2
global.set $__stack_pointer
i32.const 999
local.set 3
block ;; label = @1
local.get 0
i32.const 99
i32.gt_s
br_if 0 (;@1;)
local.get 1
f64.const 0x0p+0 (;=0;)
f64.le
br_if 0 (;@1;)
i32.const 5
i32.const 5
call $__pragma_loopbound
block ;; label = @2
local.get 0
i32.const 1
i32.lt_s
local.tee 4
br_if 0 (;@2;)
local.get 0
i32.const 2147483646
i32.and
local.set 5
local.get 0
i32.const 1
i32.and
local.set 6
i32.const 1424
local.set 7
i32.const 1432
local.set 8
i32.const 1024
local.set 9
i32.const 1
local.set 10
i32.const 0
local.set 11
loop ;; label = @3
block ;; label = @4
local.get 11
i32.const 400
i32.mul
local.get 11
i32.const 3
i32.shl
local.tee 12
i32.add
i32.const 1024
i32.add
local.tee 13
f64.load
local.tee 14
local.get 14
f64.neg
local.get 14
f64.const 0x0p+0 (;=0;)
f64.ge
select
local.get 1
f64.le
i32.eqz
br_if 0 (;@4;)
i32.const 1
local.set 3
br 3 (;@1;)
end
i32.const 1
i32.const 5
call $__pragma_loopbound
local.get 11
i32.const 1
i32.add
local.set 15
block ;; label = @4
block ;; label = @5
local.get 11
i32.eqz
br_if 0 (;@5;)
i32.const 0
local.get 11
i32.const -2
i32.and
i32.sub
local.set 16
local.get 11
i32.const 1
i32.and
local.set 17
local.get 7
local.set 18
local.get 15
local.set 19
loop ;; label = @6
local.get 19
i32.const 400
i32.mul
local.tee 20
local.get 12
i32.add
i32.const 1024
i32.add
local.tee 21
f64.load
local.set 14
i32.const 1
i32.const 4
call $__pragma_loopbound
i32.const 0
local.set 3
block ;; label = @7
local.get 11
i32.const 1
i32.eq
br_if 0 (;@7;)
i32.const 0
local.set 22
local.get 18
local.set 3
local.get 9
local.set 23
loop ;; label = @8
local.get 14
local.get 3
f64.load
local.get 23
f64.load
f64.mul
f64.sub
local.get 3
i32.const 8
i32.add
f64.load
local.get 23
i32.const 400
i32.add
f64.load
f64.mul
f64.sub
local.set 14
local.get 3
i32.const 16
i32.add
local.set 3
local.get 23
i32.const 800
i32.add
local.set 23
local.get 16
local.get 22
i32.const -2
i32.add
local.tee 22
i32.ne
br_if 0 (;@8;)
end
i32.const 0
local.get 22
i32.sub
local.set 3
end
block ;; label = @7
local.get 17
i32.eqz
br_if 0 (;@7;)
local.get 14
local.get 20
local.get 3
i32.const 3
i32.shl
i32.add
i32.const 1024
i32.add
f64.load
local.get 3
i32.const 400
i32.mul
local.get 12
i32.add
i32.const 1024
i32.add
f64.load
f64.mul
f64.sub
local.set 14
end
local.get 21
local.get 14
local.get 13
f64.load
f64.div
f64.store
local.get 18
i32.const 400
i32.add
local.set 18
local.get 19
local.get 0
i32.eq
local.set 3
local.get 19
i32.const 1
i32.add
local.set 19
local.get 3
i32.eqz
br_if 0 (;@6;)
br 2 (;@4;)
end
end
i32.const 1
local.set 3
block ;; label = @5
local.get 0
i32.const 1
i32.eq
br_if 0 (;@5;)
i32.const 0
local.set 23
i32.const 1824
local.set 3
loop ;; label = @6
local.get 3
i32.const -400
i32.add
local.tee 22
local.get 22
f64.load
local.get 13
f64.load
f64.div
f64.store
local.get 3
local.get 3
f64.load
local.get 13
f64.load
f64.div
f64.store
local.get 3
i32.const 800
i32.add
local.set 3
local.get 5
local.get 23
i32.const 2
i32.add
local.tee 23
i32.ne
br_if 0 (;@6;)
end
local.get 23
i32.const 1
i32.add
local.set 3
end
local.get 6
i32.eqz
br_if 0 (;@4;)
local.get 3
i32.const 400
i32.mul
i32.const 1024
i32.add
local.tee 3
local.get 3
f64.load
local.get 13
f64.load
f64.div
f64.store
end
local.get 10
i32.const -2
i32.and
local.set 16
i32.const 1
i32.const 5
call $__pragma_loopbound
local.get 10
i32.const 1
i32.and
local.set 20
local.get 9
local.set 18
local.get 15
local.set 19
loop ;; label = @4
local.get 15
i32.const 400
i32.mul
local.tee 13
local.get 19
i32.const 3
i32.shl
local.tee 12
i32.add
i32.const 1024
i32.add
local.tee 21
f64.load
local.set 14
i32.const 1
i32.const 5
call $__pragma_loopbound
i32.const 0
local.set 22
block ;; label = @5
local.get 11
i32.eqz
br_if 0 (;@5;)
local.get 18
local.set 3
local.get 8
local.set 23
loop ;; label = @6
local.get 14
local.get 23
i32.const -8
i32.add
f64.load
local.get 3
i32.const 8
i32.add
f64.load
f64.mul
f64.sub
local.get 23
f64.load
local.get 3
i32.const 408
i32.add
f64.load
f64.mul
f64.sub
local.set 14
local.get 3
i32.const 800
i32.add
local.set 3
local.get 23
i32.const 16
i32.add
local.set 23
local.get 16
local.get 22
i32.const 2
i32.add
local.tee 22
i32.ne
br_if 0 (;@6;)
end
end
block ;; label = @5
local.get 20
i32.eqz
br_if 0 (;@5;)
local.get 14
local.get 13
local.get 22
i32.const 3
i32.shl
i32.add
i32.const 1024
i32.add
f64.load
local.get 22
i32.const 400
i32.mul
local.get 12
i32.add
i32.const 1024
i32.add
f64.load
f64.mul
f64.sub
local.set 14
end
local.get 21
local.get 14
f64.store
local.get 18
i32.const 8
i32.add
local.set 18
local.get 19
local.get 0
i32.eq
local.set 3
local.get 19
i32.const 1
i32.add
local.set 19
local.get 3
i32.eqz
br_if 0 (;@4;)
end
local.get 8
i32.const 400
i32.add
local.set 8
local.get 7
i32.const 400
i32.add
local.set 7
local.get 9
i32.const 8
i32.add
local.set 9
local.get 10
i32.const 1
i32.add
local.set 10
local.get 15
local.set 11
local.get 15
local.get 0
i32.ne
br_if 0 (;@3;)
end
end
i32.const 0
local.set 18
local.get 2
i32.const 0
f64.load offset=21024
f64.store
i32.const 5
i32.const 5
call $__pragma_loopbound
block ;; label = @2
local.get 4
br_if 0 (;@2;)
i32.const 1432
local.set 21
i32.const 1
local.set 19
loop ;; label = @3
local.get 19
i32.const 3
i32.shl
local.tee 11
i32.const 21024
i32.add
f64.load
local.set 14
i32.const 1
i32.const 5
call $__pragma_loopbound
block ;; label = @4
block ;; label = @5
local.get 18
br_if 0 (;@5;)
i32.const 0
local.set 22
br 1 (;@4;)
end
local.get 19
i32.const -2
i32.and
local.set 16
i32.const 0
local.set 22
local.get 2
local.set 3
local.get 21
local.set 23
loop ;; label = @5
local.get 14
local.get 23
i32.const -8
i32.add
f64.load
local.get 3
f64.load
f64.mul
f64.sub
local.get 23
f64.load
local.get 3
i32.const 8
i32.add
f64.load
f64.mul
f64.sub
local.set 14
local.get 3
i32.const 16
i32.add
local.set 3
local.get 23
i32.const 16
i32.add
local.set 23
local.get 16
local.get 22
i32.const 2
i32.add
local.tee 22
i32.ne
br_if 0 (;@5;)
end
end
block ;; label = @4
local.get 19
i32.const 1
i32.and
i32.eqz
br_if 0 (;@4;)
local.get 14
local.get 19
i32.const 400
i32.mul
local.get 22
i32.const 3
i32.shl
local.tee 3
i32.add
i32.const 1024
i32.add
f64.load
local.get 2
local.get 3
i32.add
f64.load
f64.mul
f64.sub
local.set 14
end
local.get 2
local.get 11
i32.add
local.get 14
f64.store
local.get 21
i32.const 400
i32.add
local.set 21
local.get 18
i32.const 1
i32.add
local.set 18
local.get 19
local.get 0
i32.ne
local.set 3
local.get 19
i32.const 1
i32.add
local.set 19
local.get 3
br_if 0 (;@3;)
end
end
local.get 0
i32.const 3
i32.shl
local.tee 3
i32.const 21440
i32.add
local.get 2
local.get 3
i32.add
f64.load
local.get 0
i32.const 400
i32.mul
local.tee 23
local.get 3
i32.add
i32.const 1024
i32.add
f64.load
f64.div
f64.store
i32.const 5
i32.const 5
call $__pragma_loopbound
block ;; label = @2
local.get 0
i32.const 1
i32.lt_s
br_if 0 (;@2;)
local.get 0
i32.const 1
i32.add
local.set 13
local.get 23
i32.const 624
i32.add
local.set 16
i32.const 0
local.set 21
local.get 0
local.set 18
loop ;; label = @3
local.get 2
local.get 18
local.tee 19
i32.const -1
i32.add
local.tee 18
i32.const 3
i32.shl
local.tee 11
i32.add
f64.load
local.set 14
i32.const 1
i32.const 5
call $__pragma_loopbound
block ;; label = @4
local.get 19
local.get 0
i32.gt_s
br_if 0 (;@4;)
block ;; label = @5
block ;; label = @6
local.get 21
i32.const 1
i32.and
i32.eqz
br_if 0 (;@6;)
local.get 19
local.set 23
br 1 (;@5;)
end
local.get 14
local.get 18
i32.const 400
i32.mul
local.get 19
i32.const 3
i32.shl
local.tee 3
i32.add
i32.const 1024
i32.add
f64.load
local.get 3
i32.const 21440
i32.add
f64.load
f64.mul
f64.sub
local.set 14
local.get 19
i32.const 1
i32.add
local.set 23
end
local.get 21
i32.eqz
br_if 0 (;@4;)
local.get 23
i32.const 3
i32.shl
local.set 3
local.get 13
local.get 23
i32.sub
local.set 23
loop ;; label = @5
local.get 14
local.get 16
local.get 3
i32.add
local.tee 22
f64.load
local.get 3
i32.const 21440
i32.add
f64.load
f64.mul
f64.sub
local.get 22
i32.const 8
i32.add
f64.load
local.get 3
i32.const 21448
i32.add
f64.load
f64.mul
f64.sub
local.set 14
local.get 3
i32.const 16
i32.add
local.set 3
local.get 23
i32.const -2
i32.add
local.tee 23
br_if 0 (;@5;)
end
end
local.get 11
i32.const 21440
i32.add
local.get 14
local.get 18
i32.const 400
i32.mul
local.get 11
i32.add
i32.const 1024
i32.add
f64.load
f64.div
f64.store
local.get 16
i32.const -400
i32.add
local.set 16
local.get 21
i32.const 1
i32.add
local.set 21
local.get 19
i32.const 1
i32.gt_s
br_if 0 (;@3;)
end
end
i32.const 0
local.set 3
end
local.get 2
i32.const 800
i32.add
global.set $__stack_pointer
local.get 3)
(func $ludcmp_main (type 1)
i32.const 0
i32.const 5
f64.const 0x1p+0 (;=1;)
call $ludcmp_test
i32.store offset=21424)
(func $__original_main (type 3) (result i32)
(local i32)
call $ludcmp_init
call $ludcmp_main
i32.const 0
i32.load offset=21424
local.set 0
i32.const 6
i32.const 6
call $__pragma_loopbound
i32.const 0
i32.const -1
i32.const 0
f64.load offset=21440
local.get 0
f64.convert_i32_s
f64.add
i32.const 0
f64.load offset=21448
f64.add
i32.const 0
f64.load offset=21456
f64.add
i32.const 0
f64.load offset=21464
f64.add
i32.const 0
f64.load offset=21472
f64.add
i32.const 0
f64.load offset=21480
f64.add
f64.const -0x1.8p+2 (;=-6;)
f64.add
f64.abs
f64.const 0x1.0c6f7a0b5ed8dp-20 (;=1e-06;)
f64.lt
select)
(table (;0;) 1 1 funcref)
(memory (;0;) 1)
(global $__stack_pointer (mut i32) (i32.const 25936))
(global (;1;) i32 (i32.const 21840))
(global (;2;) i32 (i32.const 25936))
(export "memory" (memory 0))
(export "__wasm_apply_data_relocs" (func $__wasm_apply_data_relocs))
(export "entrypoint" (func $ludcmp_main))
(export "main" (func $__original_main))
(export "__data_end" (global 1))
(export "__heap_base" (global 2)))