assemblyscript/tests/compiler/std/operator-overloading.untouched.wat

2844 lines
57 KiB
Plaintext

(module
(type $FUNCSIG$v (func))
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$ddd (func (param f64 f64) (result f64)))
(type $FUNCSIG$ddi (func (param f64 i32) (result f64)))
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\1b\00\00\00s\00t\00d\00/\00o\00p\00e\00r\00a\00t\00o\00r\00-\00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00.\00t\00s\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $std/operator-overloading/a1 (mut i32) (i32.const 0))
(global $std/operator-overloading/a2 (mut i32) (i32.const 0))
(global $std/operator-overloading/a (mut i32) (i32.const 0))
(global $std/operator-overloading/s1 (mut i32) (i32.const 0))
(global $std/operator-overloading/s2 (mut i32) (i32.const 0))
(global $std/operator-overloading/s (mut i32) (i32.const 0))
(global $std/operator-overloading/m1 (mut i32) (i32.const 0))
(global $std/operator-overloading/m2 (mut i32) (i32.const 0))
(global $std/operator-overloading/m (mut i32) (i32.const 0))
(global $std/operator-overloading/d1 (mut i32) (i32.const 0))
(global $std/operator-overloading/d2 (mut i32) (i32.const 0))
(global $std/operator-overloading/d (mut i32) (i32.const 0))
(global $std/operator-overloading/f1 (mut i32) (i32.const 0))
(global $std/operator-overloading/f2 (mut i32) (i32.const 0))
(global $std/operator-overloading/f (mut i32) (i32.const 0))
(global $std/operator-overloading/p1 (mut i32) (i32.const 0))
(global $std/operator-overloading/p2 (mut i32) (i32.const 0))
(global $std/operator-overloading/p (mut i32) (i32.const 0))
(global $std/operator-overloading/n1 (mut i32) (i32.const 0))
(global $std/operator-overloading/n2 (mut i32) (i32.const 0))
(global $std/operator-overloading/n (mut i32) (i32.const 0))
(global $std/operator-overloading/o1 (mut i32) (i32.const 0))
(global $std/operator-overloading/o2 (mut i32) (i32.const 0))
(global $std/operator-overloading/o (mut i32) (i32.const 0))
(global $std/operator-overloading/x1 (mut i32) (i32.const 0))
(global $std/operator-overloading/x2 (mut i32) (i32.const 0))
(global $std/operator-overloading/x (mut i32) (i32.const 0))
(global $std/operator-overloading/eq1 (mut i32) (i32.const 0))
(global $std/operator-overloading/eq2 (mut i32) (i32.const 0))
(global $std/operator-overloading/eq (mut i32) (i32.const 0))
(global $std/operator-overloading/eq3 (mut i32) (i32.const 0))
(global $std/operator-overloading/eq4 (mut i32) (i32.const 0))
(global $std/operator-overloading/eqf (mut i32) (i32.const 0))
(global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647))
(global $std/operator-overloading/gt1 (mut i32) (i32.const 0))
(global $std/operator-overloading/gt2 (mut i32) (i32.const 0))
(global $std/operator-overloading/gt (mut i32) (i32.const 0))
(global $std/operator-overloading/gte1 (mut i32) (i32.const 0))
(global $std/operator-overloading/gte2 (mut i32) (i32.const 0))
(global $std/operator-overloading/gte (mut i32) (i32.const 0))
(global $std/operator-overloading/le1 (mut i32) (i32.const 0))
(global $std/operator-overloading/le2 (mut i32) (i32.const 0))
(global $std/operator-overloading/le (mut i32) (i32.const 0))
(global $std/operator-overloading/leq1 (mut i32) (i32.const 0))
(global $std/operator-overloading/leq2 (mut i32) (i32.const 0))
(global $std/operator-overloading/leq (mut i32) (i32.const 0))
(global $std/operator-overloading/shr (mut i32) (i32.const 0))
(global $std/operator-overloading/sres (mut i32) (i32.const 0))
(global $std/operator-overloading/shu (mut i32) (i32.const 0))
(global $std/operator-overloading/ures (mut i32) (i32.const 0))
(global $std/operator-overloading/shl (mut i32) (i32.const 0))
(global $std/operator-overloading/pos (mut i32) (i32.const 0))
(global $std/operator-overloading/pres (mut i32) (i32.const 0))
(global $std/operator-overloading/neg (mut i32) (i32.const 0))
(global $std/operator-overloading/nres (mut i32) (i32.const 0))
(global $std/operator-overloading/not (mut i32) (i32.const 0))
(global $std/operator-overloading/res (mut i32) (i32.const 0))
(global $std/operator-overloading/excl (mut i32) (i32.const 0))
(global $std/operator-overloading/bres (mut i32) (i32.const 0))
(global $std/operator-overloading/incdec (mut i32) (i32.const 0))
(global $std/operator-overloading/tmp (mut i32) (i32.const 0))
(global $std/operator-overloading/ais1 (mut i32) (i32.const 0))
(global $std/operator-overloading/ais2 (mut i32) (i32.const 0))
(global $std/operator-overloading/ais (mut i32) (i32.const 0))
(global $std/operator-overloading/aii1 (mut i32) (i32.const 0))
(global $std/operator-overloading/aii2 (mut i32) (i32.const 0))
(global $std/operator-overloading/aii (mut i32) (i32.const 0))
(global $~lib/memory/HEAP_BASE i32 (i32.const 68))
(export "memory" (memory $0))
(export "table" (table $0))
(start $start)
(func $start:~lib/allocator/arena (; 1 ;) (type $FUNCSIG$v)
global.get $~lib/memory/HEAP_BASE
i32.const 7
i32.add
i32.const 7
i32.const -1
i32.xor
i32.and
global.set $~lib/allocator/arena/startOffset
global.get $~lib/allocator/arena/startOffset
global.set $~lib/allocator/arena/offset
)
(func $~lib/allocator/arena/__memory_allocate (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
(local $6 i32)
local.get $0
i32.const 1073741824
i32.gt_u
if
unreachable
end
global.get $~lib/allocator/arena/offset
local.set $1
local.get $1
local.get $0
local.tee $2
i32.const 1
local.tee $3
local.get $2
local.get $3
i32.gt_u
select
i32.add
i32.const 7
i32.add
i32.const 7
i32.const -1
i32.xor
i32.and
local.set $4
current_memory
local.set $5
local.get $4
local.get $5
i32.const 16
i32.shl
i32.gt_u
if
local.get $4
local.get $1
i32.sub
i32.const 65535
i32.add
i32.const 65535
i32.const -1
i32.xor
i32.and
i32.const 16
i32.shr_u
local.set $2
local.get $5
local.tee $3
local.get $2
local.tee $6
local.get $3
local.get $6
i32.gt_s
select
local.set $3
local.get $3
grow_memory
i32.const 0
i32.lt_s
if
local.get $2
grow_memory
i32.const 0
i32.lt_s
if
unreachable
end
end
end
local.get $4
global.set $~lib/allocator/arena/offset
local.get $1
)
(func $~lib/memory/memory.allocate (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
call $~lib/allocator/arena/__memory_allocate
return
)
(func $std/operator-overloading/Tester#constructor (; 4 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $0
i32.eqz
if
i32.const 8
call $~lib/memory/memory.allocate
local.set $0
end
local.get $0
local.get $1
i32.store
local.get $0
local.get $2
i32.store offset=4
local.get $0
)
(func $std/operator-overloading/Tester.add (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
i32.const 0
local.get $0
i32.load
local.get $1
i32.load
i32.add
local.get $0
i32.load offset=4
local.get $1
i32.load offset=4
i32.add
call $std/operator-overloading/Tester#constructor
)
(func $std/operator-overloading/Tester.sub (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
i32.const 0
local.get $0
i32.load
local.get $1
i32.load
i32.sub
local.get $0
i32.load offset=4
local.get $1
i32.load offset=4
i32.sub
call $std/operator-overloading/Tester#constructor
)
(func $std/operator-overloading/Tester.mul (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
i32.const 0
local.get $0
i32.load
local.get $1
i32.load
i32.mul
local.get $0
i32.load offset=4
local.get $1
i32.load offset=4
i32.mul
call $std/operator-overloading/Tester#constructor
)
(func $std/operator-overloading/Tester.div (; 8 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
i32.const 0
local.get $0
i32.load
local.get $1
i32.load
i32.div_s
local.get $0
i32.load offset=4
local.get $1
i32.load offset=4
i32.div_s
call $std/operator-overloading/Tester#constructor
)
(func $std/operator-overloading/Tester.mod (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
i32.const 0
local.get $0
i32.load
local.get $1
i32.load
i32.rem_s
local.get $0
i32.load offset=4
local.get $1
i32.load offset=4
i32.rem_s
call $std/operator-overloading/Tester#constructor
)
(func $~lib/math/NativeMath.scalbn (; 10 ;) (type $FUNCSIG$ddi) (param $0 f64) (param $1 i32) (result f64)
(local $2 f64)
(local $3 i32)
(local $4 i32)
local.get $0
local.set $2
local.get $1
i32.const 1023
i32.gt_s
if
local.get $2
f64.const 8988465674311579538646525e283
f64.mul
local.set $2
local.get $1
i32.const 1023
i32.sub
local.set $1
local.get $1
i32.const 1023
i32.gt_s
if
local.get $2
f64.const 8988465674311579538646525e283
f64.mul
local.set $2
local.get $1
i32.const 1023
i32.sub
local.tee $3
i32.const 1023
local.tee $4
local.get $3
local.get $4
i32.lt_s
select
local.set $1
end
else
local.get $1
i32.const -1022
i32.lt_s
if
local.get $2
f64.const 2.2250738585072014e-308
f64.const 9007199254740992
f64.mul
f64.mul
local.set $2
local.get $1
i32.const 1022
i32.const 53
i32.sub
i32.add
local.set $1
local.get $1
i32.const -1022
i32.lt_s
if
local.get $2
f64.const 2.2250738585072014e-308
f64.const 9007199254740992
f64.mul
f64.mul
local.set $2
local.get $1
i32.const 1022
i32.add
i32.const 53
i32.sub
local.tee $3
i32.const -1022
local.tee $4
local.get $3
local.get $4
i32.gt_s
select
local.set $1
end
end
end
local.get $2
i64.const 1023
local.get $1
i64.extend_i32_s
i64.add
i64.const 52
i64.shl
f64.reinterpret_i64
f64.mul
)
(func $~lib/math/NativeMath.pow (; 11 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64)
(local $2 i64)
(local $3 i32)
(local $4 i32)
(local $5 i32)
(local $6 i32)
(local $7 i32)
(local $8 i32)
(local $9 i32)
(local $10 i32)
(local $11 i32)
(local $12 i32)
(local $13 i32)
(local $14 i32)
(local $15 f64)
(local $16 f64)
(local $17 f64)
(local $18 f64)
(local $19 f64)
(local $20 f64)
(local $21 f64)
(local $22 f64)
(local $23 f64)
(local $24 f64)
(local $25 f64)
(local $26 f64)
(local $27 f64)
(local $28 i32)
(local $29 i32)
(local $30 f64)
(local $31 f64)
(local $32 f64)
(local $33 f64)
(local $34 f64)
(local $35 f64)
(local $36 f64)
(local $37 f64)
(local $38 f64)
(local $39 f64)
(local $40 f64)
(local $41 i32)
local.get $0
i64.reinterpret_f64
local.set $2
local.get $2
i64.const 32
i64.shr_u
i32.wrap_i64
local.set $3
local.get $2
i32.wrap_i64
local.set $4
local.get $1
i64.reinterpret_f64
local.set $2
local.get $2
i64.const 32
i64.shr_u
i32.wrap_i64
local.set $5
local.get $2
i32.wrap_i64
local.set $6
local.get $3
i32.const 2147483647
i32.and
local.set $7
local.get $5
i32.const 2147483647
i32.and
local.set $8
local.get $8
local.get $6
i32.or
i32.const 0
i32.eq
if
f64.const 1
return
end
local.get $7
i32.const 2146435072
i32.gt_s
local.tee $9
if (result i32)
local.get $9
else
local.get $7
i32.const 2146435072
i32.eq
local.tee $9
if (result i32)
local.get $4
i32.const 0
i32.ne
else
local.get $9
end
end
local.tee $9
if (result i32)
local.get $9
else
local.get $8
i32.const 2146435072
i32.gt_s
end
local.tee $9
if (result i32)
local.get $9
else
local.get $8
i32.const 2146435072
i32.eq
local.tee $9
if (result i32)
local.get $6
i32.const 0
i32.ne
else
local.get $9
end
end
if
local.get $0
local.get $1
f64.add
return
end
i32.const 0
local.set $10
local.get $3
i32.const 0
i32.lt_s
if
local.get $8
i32.const 1128267776
i32.ge_s
if
i32.const 2
local.set $10
else
local.get $8
i32.const 1072693248
i32.ge_s
if
local.get $8
i32.const 20
i32.shr_s
i32.const 1023
i32.sub
local.set $11
local.get $11
i32.const 20
i32.gt_s
local.set $9
i32.const 52
i32.const 20
local.get $9
select
local.get $11
i32.sub
local.set $12
local.get $6
local.get $8
local.get $9
select
local.set $13
local.get $13
local.get $12
i32.shr_s
local.set $14
local.get $14
local.get $12
i32.shl
local.get $13
i32.eq
if
i32.const 2
local.get $14
i32.const 1
i32.and
i32.sub
local.set $10
end
end
end
end
local.get $6
i32.const 0
i32.eq
if
local.get $8
i32.const 2146435072
i32.eq
if
local.get $7
i32.const 1072693248
i32.sub
local.get $4
i32.or
i32.const 0
i32.eq
if
f64.const nan:0x8000000000000
return
else
local.get $7
i32.const 1072693248
i32.ge_s
if
local.get $5
i32.const 0
i32.ge_s
if (result f64)
local.get $1
else
f64.const 0
end
return
else
local.get $5
i32.const 0
i32.ge_s
if (result f64)
f64.const 0
else
local.get $1
f64.neg
end
return
end
unreachable
end
unreachable
unreachable
end
local.get $8
i32.const 1072693248
i32.eq
if
local.get $5
i32.const 0
i32.ge_s
if
local.get $0
return
end
f64.const 1
local.get $0
f64.div
return
end
local.get $5
i32.const 1073741824
i32.eq
if
local.get $0
local.get $0
f64.mul
return
end
local.get $5
i32.const 1071644672
i32.eq
if
local.get $3
i32.const 0
i32.ge_s
if
local.get $0
f64.sqrt
return
end
end
end
local.get $0
f64.abs
local.set $15
local.get $4
i32.const 0
i32.eq
if
local.get $7
i32.const 0
i32.eq
local.tee $14
if (result i32)
local.get $14
else
local.get $7
i32.const 2146435072
i32.eq
end
local.tee $14
if (result i32)
local.get $14
else
local.get $7
i32.const 1072693248
i32.eq
end
if
local.get $15
local.set $16
local.get $5
i32.const 0
i32.lt_s
if
f64.const 1
local.get $16
f64.div
local.set $16
end
local.get $3
i32.const 0
i32.lt_s
if
local.get $7
i32.const 1072693248
i32.sub
local.get $10
i32.or
i32.const 0
i32.eq
if
local.get $16
local.get $16
f64.sub
local.set $17
local.get $17
local.get $17
f64.div
local.set $16
else
local.get $10
i32.const 1
i32.eq
if
local.get $16
f64.neg
local.set $16
end
end
end
local.get $16
return
end
end
f64.const 1
local.set $18
local.get $3
i32.const 0
i32.lt_s
if
local.get $10
i32.const 0
i32.eq
if
local.get $0
local.get $0
f64.sub
local.set $17
local.get $17
local.get $17
f64.div
return
end
local.get $10
i32.const 1
i32.eq
if
f64.const -1
local.set $18
end
end
local.get $8
i32.const 1105199104
i32.gt_s
if
local.get $8
i32.const 1139802112
i32.gt_s
if
local.get $7
i32.const 1072693247
i32.le_s
if
local.get $5
i32.const 0
i32.lt_s
if (result f64)
f64.const 1.e+300
f64.const 1.e+300
f64.mul
else
f64.const 1e-300
f64.const 1e-300
f64.mul
end
return
end
local.get $7
i32.const 1072693248
i32.ge_s
if
local.get $5
i32.const 0
i32.gt_s
if (result f64)
f64.const 1.e+300
f64.const 1.e+300
f64.mul
else
f64.const 1e-300
f64.const 1e-300
f64.mul
end
return
end
end
local.get $7
i32.const 1072693247
i32.lt_s
if
local.get $5
i32.const 0
i32.lt_s
if (result f64)
local.get $18
f64.const 1.e+300
f64.mul
f64.const 1.e+300
f64.mul
else
local.get $18
f64.const 1e-300
f64.mul
f64.const 1e-300
f64.mul
end
return
end
local.get $7
i32.const 1072693248
i32.gt_s
if
local.get $5
i32.const 0
i32.gt_s
if (result f64)
local.get $18
f64.const 1.e+300
f64.mul
f64.const 1.e+300
f64.mul
else
local.get $18
f64.const 1e-300
f64.mul
f64.const 1e-300
f64.mul
end
return
end
local.get $15
f64.const 1
f64.sub
local.set $24
local.get $24
local.get $24
f64.mul
f64.const 0.5
local.get $24
f64.const 0.3333333333333333
local.get $24
f64.const 0.25
f64.mul
f64.sub
f64.mul
f64.sub
f64.mul
local.set $27
f64.const 1.4426950216293335
local.get $24
f64.mul
local.set $25
local.get $24
f64.const 1.9259629911266175e-08
f64.mul
local.get $27
f64.const 1.4426950408889634
f64.mul
f64.sub
local.set $26
local.get $25
local.get $26
f64.add
local.set $19
local.get $19
i64.reinterpret_f64
i64.const -4294967296
i64.and
f64.reinterpret_i64
local.set $19
local.get $26
local.get $19
local.get $25
f64.sub
f64.sub
local.set $20
else
i32.const 0
local.set $29
local.get $7
i32.const 1048576
i32.lt_s
if
local.get $15
f64.const 9007199254740992
f64.mul
local.set $15
local.get $29
i32.const 53
i32.sub
local.set $29
local.get $15
i64.reinterpret_f64
i64.const 32
i64.shr_u
i32.wrap_i64
local.set $7
end
local.get $29
local.get $7
i32.const 20
i32.shr_s
i32.const 1023
i32.sub
i32.add
local.set $29
local.get $7
i32.const 1048575
i32.and
local.set $28
local.get $28
i32.const 1072693248
i32.or
local.set $7
local.get $28
i32.const 235662
i32.le_s
if
i32.const 0
local.set $11
else
local.get $28
i32.const 767610
i32.lt_s
if
i32.const 1
local.set $11
else
i32.const 0
local.set $11
local.get $29
i32.const 1
i32.add
local.set $29
local.get $7
i32.const 1048576
i32.sub
local.set $7
end
end
local.get $15
i64.reinterpret_f64
i64.const 4294967295
i64.and
local.get $7
i64.extend_i32_s
i64.const 32
i64.shl
i64.or
f64.reinterpret_i64
local.set $15
f64.const 1.5
f64.const 1
local.get $11
select
local.set $35
local.get $15
local.get $35
f64.sub
local.set $25
f64.const 1
local.get $15
local.get $35
f64.add
f64.div
local.set $26
local.get $25
local.get $26
f64.mul
local.set $17
local.get $17
local.set $31
local.get $31
i64.reinterpret_f64
i64.const -4294967296
i64.and
f64.reinterpret_i64
local.set $31
local.get $7
i32.const 1
i32.shr_s
i32.const 536870912
i32.or
i32.const 524288
i32.add
local.get $11
i32.const 18
i32.shl
i32.add
i64.extend_i32_s
i64.const 32
i64.shl
f64.reinterpret_i64
local.set $33
local.get $15
local.get $33
local.get $35
f64.sub
f64.sub
local.set $34
local.get $26
local.get $25
local.get $31
local.get $33
f64.mul
f64.sub
local.get $31
local.get $34
f64.mul
f64.sub
f64.mul
local.set $32
local.get $17
local.get $17
f64.mul
local.set $30
local.get $30
local.get $30
f64.mul
f64.const 0.5999999999999946
local.get $30
f64.const 0.4285714285785502
local.get $30
f64.const 0.33333332981837743
local.get $30
f64.const 0.272728123808534
local.get $30
f64.const 0.23066074577556175
local.get $30
f64.const 0.20697501780033842
f64.mul
f64.add
f64.mul
f64.add
f64.mul
f64.add
f64.mul
f64.add
f64.mul
f64.add
f64.mul
local.set $23
local.get $23
local.get $32
local.get $31
local.get $17
f64.add
f64.mul
f64.add
local.set $23
local.get $31
local.get $31
f64.mul
local.set $30
f64.const 3
local.get $30
f64.add
local.get $23
f64.add
local.set $33
local.get $33
i64.reinterpret_f64
i64.const -4294967296
i64.and
f64.reinterpret_i64
local.set $33
local.get $23
local.get $33
f64.const 3
f64.sub
local.get $30
f64.sub
f64.sub
local.set $34
local.get $31
local.get $33
f64.mul
local.set $25
local.get $32
local.get $33
f64.mul
local.get $34
local.get $17
f64.mul
f64.add
local.set $26
local.get $25
local.get $26
f64.add
local.set $21
local.get $21
i64.reinterpret_f64
i64.const -4294967296
i64.and
f64.reinterpret_i64
local.set $21
local.get $26
local.get $21
local.get $25
f64.sub
f64.sub
local.set $22
f64.const 0.9617967009544373
local.get $21
f64.mul
local.set $36
f64.const 1.350039202129749e-08
f64.const 0
local.get $11
select
local.set $37
f64.const -7.028461650952758e-09
local.get $21
f64.mul
local.get $22
f64.const 0.9617966939259756
f64.mul
f64.add
local.get $37
f64.add
local.set $38
local.get $29
f64.convert_i32_s
local.set $24
f64.const 0.5849624872207642
f64.const 0
local.get $11
select
local.set $39
local.get $36
local.get $38
f64.add
local.get $39
f64.add
local.get $24
f64.add
local.set $19
local.get $19
i64.reinterpret_f64
i64.const -4294967296
i64.and
f64.reinterpret_i64
local.set $19
local.get $38
local.get $19
local.get $24
f64.sub
local.get $39
f64.sub
local.get $36
f64.sub
f64.sub
local.set $20
end
local.get $1
local.set $40
local.get $40
i64.reinterpret_f64
i64.const -4294967296
i64.and
f64.reinterpret_i64
local.set $40
local.get $1
local.get $40
f64.sub
local.get $19
f64.mul
local.get $1
local.get $20
f64.mul
f64.add
local.set $22
local.get $40
local.get $19
f64.mul
local.set $21
local.get $22
local.get $21
f64.add
local.set $16
local.get $16
i64.reinterpret_f64
local.set $2
local.get $2
i64.const 32
i64.shr_u
i32.wrap_i64
local.set $28
local.get $2
i32.wrap_i64
local.set $41
local.get $28
i32.const 1083179008
i32.ge_s
if
local.get $28
i32.const 1083179008
i32.sub
local.get $41
i32.or
i32.const 0
i32.ne
if
local.get $18
f64.const 1.e+300
f64.mul
f64.const 1.e+300
f64.mul
return
end
local.get $22
f64.const 8.008566259537294e-17
f64.add
local.get $16
local.get $21
f64.sub
f64.gt
if
local.get $18
f64.const 1.e+300
f64.mul
f64.const 1.e+300
f64.mul
return
end
else
local.get $28
i32.const 2147483647
i32.and
i32.const 1083231232
i32.ge_s
if
local.get $28
i32.const -1064252416
i32.sub
local.get $41
i32.or
i32.const 0
i32.ne
if
local.get $18
f64.const 1e-300
f64.mul
f64.const 1e-300
f64.mul
return
end
local.get $22
local.get $16
local.get $21
f64.sub
f64.le
if
local.get $18
f64.const 1e-300
f64.mul
f64.const 1e-300
f64.mul
return
end
end
end
local.get $28
i32.const 2147483647
i32.and
local.set $41
local.get $41
i32.const 20
i32.shr_s
i32.const 1023
i32.sub
local.set $11
i32.const 0
local.set $29
local.get $41
i32.const 1071644672
i32.gt_s
if
local.get $28
i32.const 1048576
local.get $11
i32.const 1
i32.add
i32.shr_s
i32.add
local.set $29
local.get $29
i32.const 2147483647
i32.and
i32.const 20
i32.shr_s
i32.const 1023
i32.sub
local.set $11
f64.const 0
local.set $24
local.get $29
i32.const 1048575
local.get $11
i32.shr_s
i32.const -1
i32.xor
i32.and
i64.extend_i32_s
i64.const 32
i64.shl
f64.reinterpret_i64
local.set $24
local.get $29
i32.const 1048575
i32.and
i32.const 1048576
i32.or
i32.const 20
local.get $11
i32.sub
i32.shr_s
local.set $29
local.get $28
i32.const 0
i32.lt_s
if
i32.const 0
local.get $29
i32.sub
local.set $29
end
local.get $21
local.get $24
f64.sub
local.set $21
end
local.get $22
local.get $21
f64.add
local.set $24
local.get $24
i64.reinterpret_f64
i64.const -4294967296
i64.and
f64.reinterpret_i64
local.set $24
local.get $24
f64.const 0.6931471824645996
f64.mul
local.set $25
local.get $22
local.get $24
local.get $21
f64.sub
f64.sub
f64.const 0.6931471805599453
f64.mul
local.get $24
f64.const -1.904654299957768e-09
f64.mul
f64.add
local.set $26
local.get $25
local.get $26
f64.add
local.set $16
local.get $26
local.get $16
local.get $25
f64.sub
f64.sub
local.set $27
local.get $16
local.get $16
f64.mul
local.set $24
local.get $16
local.get $24
f64.const 0.16666666666666602
local.get $24
f64.const -2.7777777777015593e-03
local.get $24
f64.const 6.613756321437934e-05
local.get $24
f64.const -1.6533902205465252e-06
local.get $24
f64.const 4.1381367970572385e-08
f64.mul
f64.add
f64.mul
f64.add
f64.mul
f64.add
f64.mul
f64.add
f64.mul
f64.sub
local.set $19
local.get $16
local.get $19
f64.mul
local.get $19
f64.const 2
f64.sub
f64.div
local.get $27
local.get $16
local.get $27
f64.mul
f64.add
f64.sub
local.set $23
f64.const 1
local.get $23
local.get $16
f64.sub
f64.sub
local.set $16
local.get $16
i64.reinterpret_f64
i64.const 32
i64.shr_u
i32.wrap_i64
local.set $28
local.get $28
local.get $29
i32.const 20
i32.shl
i32.add
local.set $28
local.get $28
i32.const 20
i32.shr_s
i32.const 0
i32.le_s
if
local.get $16
local.get $29
call $~lib/math/NativeMath.scalbn
local.set $16
else
local.get $16
i64.reinterpret_f64
i64.const 4294967295
i64.and
local.get $28
i64.extend_i32_s
i64.const 32
i64.shl
i64.or
f64.reinterpret_i64
local.set $16
end
local.get $18
local.get $16
f64.mul
)
(func $std/operator-overloading/Tester.pow (; 12 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
i32.const 0
local.get $0
i32.load
f64.convert_i32_s
local.get $1
i32.load
f64.convert_i32_s
call $~lib/math/NativeMath.pow
i32.trunc_f64_s
local.get $0
i32.load offset=4
f64.convert_i32_s
local.get $1
i32.load offset=4
f64.convert_i32_s
call $~lib/math/NativeMath.pow
i32.trunc_f64_s
call $std/operator-overloading/Tester#constructor
)
(func $std/operator-overloading/Tester.and (; 13 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
i32.const 0
local.get $0
i32.load
local.get $1
i32.load
i32.and
local.get $0
i32.load offset=4
local.get $1
i32.load offset=4
i32.and
call $std/operator-overloading/Tester#constructor
)
(func $std/operator-overloading/Tester.or (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
i32.const 0
local.get $0
i32.load
local.get $1
i32.load
i32.or
local.get $0
i32.load offset=4
local.get $1
i32.load offset=4
i32.or
call $std/operator-overloading/Tester#constructor
)
(func $std/operator-overloading/Tester.xor (; 15 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
i32.const 0
local.get $0
i32.load
local.get $1
i32.load
i32.xor
local.get $0
i32.load offset=4
local.get $1
i32.load offset=4
i32.xor
call $std/operator-overloading/Tester#constructor
)
(func $std/operator-overloading/Tester.equals (; 16 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
i32.load
local.get $1
i32.load
i32.eq
local.tee $2
if (result i32)
local.get $0
i32.load offset=4
local.get $1
i32.load offset=4
i32.eq
else
local.get $2
end
)
(func $std/operator-overloading/Tester.notEquals (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
i32.load
local.get $1
i32.load
i32.ne
local.tee $2
if (result i32)
local.get $0
i32.load offset=4
local.get $1
i32.load offset=4
i32.ne
else
local.get $2
end
)
(func $std/operator-overloading/Tester.greater (; 18 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
i32.load
local.get $1
i32.load
i32.gt_s
local.tee $2
if (result i32)
local.get $0
i32.load offset=4
local.get $1
i32.load offset=4
i32.gt_s
else
local.get $2
end
)
(func $std/operator-overloading/Tester.greaterEquals (; 19 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
i32.load
local.get $1
i32.load
i32.ge_s
local.tee $2
if (result i32)
local.get $0
i32.load offset=4
local.get $1
i32.load offset=4
i32.ge_s
else
local.get $2
end
)
(func $std/operator-overloading/Tester.less (; 20 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
i32.load
local.get $1
i32.load
i32.lt_s
local.tee $2
if (result i32)
local.get $0
i32.load offset=4
local.get $1
i32.load offset=4
i32.lt_s
else
local.get $2
end
)
(func $std/operator-overloading/Tester.lessEquals (; 21 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
i32.load
local.get $1
i32.load
i32.le_s
local.tee $2
if (result i32)
local.get $0
i32.load offset=4
local.get $1
i32.load offset=4
i32.le_s
else
local.get $2
end
)
(func $std/operator-overloading/Tester.shr (; 22 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
i32.const 0
local.get $0
i32.load
local.get $1
i32.shr_s
local.get $0
i32.load offset=4
local.get $1
i32.shr_s
call $std/operator-overloading/Tester#constructor
)
(func $std/operator-overloading/Tester.shu (; 23 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
i32.const 0
local.get $0
i32.load
local.get $1
i32.shr_u
local.get $0
i32.load offset=4
local.get $1
i32.shr_u
call $std/operator-overloading/Tester#constructor
)
(func $std/operator-overloading/Tester.shl (; 24 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
i32.const 0
local.get $0
i32.load
local.get $1
i32.shl
local.get $0
i32.load offset=4
local.get $1
i32.shl
call $std/operator-overloading/Tester#constructor
)
(func $std/operator-overloading/Tester.pos (; 25 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 0
local.get $0
i32.load
local.get $0
i32.load offset=4
call $std/operator-overloading/Tester#constructor
)
(func $std/operator-overloading/Tester.neg (; 26 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 0
i32.const 0
local.get $0
i32.load
i32.sub
i32.const 0
local.get $0
i32.load offset=4
i32.sub
call $std/operator-overloading/Tester#constructor
)
(func $std/operator-overloading/Tester.not (; 27 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 0
local.get $0
i32.load
i32.const -1
i32.xor
local.get $0
i32.load offset=4
i32.const -1
i32.xor
call $std/operator-overloading/Tester#constructor
)
(func $std/operator-overloading/Tester.excl (; 28 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
i32.load
i32.eqz
local.tee $1
if (result i32)
local.get $0
i32.load offset=4
i32.eqz
else
local.get $1
end
)
(func $std/operator-overloading/Tester#inc (; 29 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
local.get $0
i32.load
i32.const 1
i32.add
i32.store
local.get $0
local.get $0
i32.load offset=4
i32.const 1
i32.add
i32.store offset=4
local.get $0
)
(func $std/operator-overloading/Tester#dec (; 30 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
local.get $0
i32.load
i32.const 1
i32.sub
i32.store
local.get $0
local.get $0
i32.load offset=4
i32.const 1
i32.sub
i32.store offset=4
local.get $0
)
(func $std/operator-overloading/Tester#postInc (; 31 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 0
local.get $0
i32.load
i32.const 1
i32.add
local.get $0
i32.load offset=4
i32.const 1
i32.add
call $std/operator-overloading/Tester#constructor
)
(func $std/operator-overloading/Tester#postDec (; 32 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 0
local.get $0
i32.load
i32.const 1
i32.sub
local.get $0
i32.load offset=4
i32.const 1
i32.sub
call $std/operator-overloading/Tester#constructor
)
(func $std/operator-overloading/TesterInlineStatic#constructor (; 33 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $0
i32.eqz
if
i32.const 8
call $~lib/memory/memory.allocate
local.set $0
end
local.get $0
local.get $1
i32.store
local.get $0
local.get $2
i32.store offset=4
local.get $0
)
(func $std/operator-overloading/TesterInlineInstance#constructor (; 34 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $0
i32.eqz
if
i32.const 8
call $~lib/memory/memory.allocate
local.set $0
end
local.get $0
local.get $1
i32.store
local.get $0
local.get $2
i32.store offset=4
local.get $0
)
(func $start:std/operator-overloading (; 35 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
call $start:~lib/allocator/arena
i32.const 0
i32.const 1
i32.const 2
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/a1
i32.const 0
i32.const 2
i32.const 3
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/a2
global.get $std/operator-overloading/a1
global.get $std/operator-overloading/a2
call $std/operator-overloading/Tester.add
global.set $std/operator-overloading/a
global.get $std/operator-overloading/a
i32.load
i32.const 3
i32.eq
local.tee $0
if (result i32)
global.get $std/operator-overloading/a
i32.load offset=4
i32.const 5
i32.eq
else
local.get $0
end
i32.eqz
if
i32.const 0
i32.const 8
i32.const 147
i32.const 0
call $~lib/env/abort
unreachable
end
i32.const 0
i32.const 2
i32.const 3
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/s1
i32.const 0
i32.const 2
i32.const -3
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/s2
global.get $std/operator-overloading/s1
global.get $std/operator-overloading/s2
call $std/operator-overloading/Tester.sub
global.set $std/operator-overloading/s
global.get $std/operator-overloading/s
i32.load
i32.const 0
i32.eq
local.tee $0
if (result i32)
global.get $std/operator-overloading/s
i32.load offset=4
i32.const 6
i32.eq
else
local.get $0
end
i32.eqz
if
i32.const 0
i32.const 8
i32.const 153
i32.const 0
call $~lib/env/abort
unreachable
end
i32.const 0
i32.const 2
i32.const 5
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/m1
i32.const 0
i32.const 3
i32.const 2
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/m2
global.get $std/operator-overloading/m1
global.get $std/operator-overloading/m2
call $std/operator-overloading/Tester.mul
global.set $std/operator-overloading/m
global.get $std/operator-overloading/m
i32.load
i32.const 6
i32.eq
local.tee $0
if (result i32)
global.get $std/operator-overloading/m
i32.load offset=4
i32.const 10
i32.eq
else
local.get $0
end
i32.eqz
if
i32.const 0
i32.const 8
i32.const 159
i32.const 0
call $~lib/env/abort
unreachable
end
i32.const 0
i32.const 6
i32.const 50
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/d1
i32.const 0
i32.const 3
i32.const 10
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/d2
global.get $std/operator-overloading/d1
global.get $std/operator-overloading/d2
call $std/operator-overloading/Tester.div
global.set $std/operator-overloading/d
global.get $std/operator-overloading/d
i32.load
i32.const 2
i32.eq
local.tee $0
if (result i32)
global.get $std/operator-overloading/d
i32.load offset=4
i32.const 5
i32.eq
else
local.get $0
end
i32.eqz
if
i32.const 0
i32.const 8
i32.const 165
i32.const 0
call $~lib/env/abort
unreachable
end
i32.const 0
i32.const 10
i32.const 10
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/f1
i32.const 0
i32.const 6
i32.const 10
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/f2
global.get $std/operator-overloading/f1
global.get $std/operator-overloading/f2
call $std/operator-overloading/Tester.mod
global.set $std/operator-overloading/f
global.get $std/operator-overloading/f
i32.load
i32.const 4
i32.eq
local.tee $0
if (result i32)
global.get $std/operator-overloading/f
i32.load offset=4
i32.const 0
i32.eq
else
local.get $0
end
i32.eqz
if
i32.const 0
i32.const 8
i32.const 171
i32.const 0
call $~lib/env/abort
unreachable
end
i32.const 0
i32.const 2
i32.const 3
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/p1
i32.const 0
i32.const 4
i32.const 5
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/p2
global.get $std/operator-overloading/p1
global.get $std/operator-overloading/p2
call $std/operator-overloading/Tester.pow
global.set $std/operator-overloading/p
global.get $std/operator-overloading/p
i32.load
i32.const 16
i32.eq
local.tee $0
if (result i32)
global.get $std/operator-overloading/p
i32.load offset=4
i32.const 243
i32.eq
else
local.get $0
end
i32.eqz
if
i32.const 0
i32.const 8
i32.const 177
i32.const 0
call $~lib/env/abort
unreachable
end
i32.const 0
i32.const 255
i32.const 15
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/n1
i32.const 0
i32.const 15
i32.const 255
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/n2
global.get $std/operator-overloading/n1
global.get $std/operator-overloading/n2
call $std/operator-overloading/Tester.and
global.set $std/operator-overloading/n
global.get $std/operator-overloading/n
i32.load
i32.const 15
i32.eq
local.tee $0
if (result i32)
global.get $std/operator-overloading/n
i32.load offset=4
i32.const 15
i32.eq
else
local.get $0
end
i32.eqz
if
i32.const 0
i32.const 8
i32.const 183
i32.const 0
call $~lib/env/abort
unreachable
end
i32.const 0
i32.const 3855
i32.const 255
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/o1
i32.const 0
i32.const 61680
i32.const 0
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/o2
global.get $std/operator-overloading/o1
global.get $std/operator-overloading/o2
call $std/operator-overloading/Tester.or
global.set $std/operator-overloading/o
global.get $std/operator-overloading/o
i32.load
i32.const 65535
i32.eq
local.tee $0
if (result i32)
global.get $std/operator-overloading/o
i32.load offset=4
i32.const 255
i32.eq
else
local.get $0
end
i32.eqz
if
i32.const 0
i32.const 8
i32.const 189
i32.const 0
call $~lib/env/abort
unreachable
end
i32.const 0
i32.const 255
i32.const 255
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/x1
i32.const 0
i32.const 65280
i32.const 0
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/x2
global.get $std/operator-overloading/x1
global.get $std/operator-overloading/x2
call $std/operator-overloading/Tester.xor
global.set $std/operator-overloading/x
global.get $std/operator-overloading/x
i32.load
i32.const 65535
i32.eq
local.tee $0
if (result i32)
global.get $std/operator-overloading/x
i32.load offset=4
i32.const 255
i32.eq
else
local.get $0
end
i32.eqz
if
i32.const 0
i32.const 8
i32.const 195
i32.const 0
call $~lib/env/abort
unreachable
end
i32.const 0
i32.const 1
i32.const -2
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/eq1
i32.const 0
i32.const 1
i32.const -2
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/eq2
global.get $std/operator-overloading/eq1
global.get $std/operator-overloading/eq2
call $std/operator-overloading/Tester.equals
global.set $std/operator-overloading/eq
global.get $std/operator-overloading/eq
i32.const 1
i32.eq
i32.eqz
if
i32.const 0
i32.const 8
i32.const 201
i32.const 0
call $~lib/env/abort
unreachable
end
i32.const 0
i32.const 1
i32.const 0
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/eq3
i32.const 0
i32.const 0
i32.const 1
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/eq4
global.get $std/operator-overloading/eq3
global.get $std/operator-overloading/eq4
call $std/operator-overloading/Tester.equals
global.set $std/operator-overloading/eqf
global.get $std/operator-overloading/eqf
i32.const 0
i32.eq
i32.eqz
if
i32.const 0
i32.const 8
i32.const 207
i32.const 0
call $~lib/env/abort
unreachable
end
global.get $std/operator-overloading/eq1
global.get $std/operator-overloading/eq2
call $std/operator-overloading/Tester.notEquals
global.set $std/operator-overloading/eq
global.get $std/operator-overloading/eq
i32.const 0
i32.eq
i32.eqz
if
i32.const 0
i32.const 8
i32.const 211
i32.const 0
call $~lib/env/abort
unreachable
end
global.get $std/operator-overloading/eq3
global.get $std/operator-overloading/eq4
call $std/operator-overloading/Tester.notEquals
global.set $std/operator-overloading/eqf
global.get $std/operator-overloading/eqf
i32.const 1
i32.eq
i32.eqz
if
i32.const 0
i32.const 8
i32.const 215
i32.const 0
call $~lib/env/abort
unreachable
end
i32.const 0
i32.const 2
global.get $~lib/builtins/i32.MAX_VALUE
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/gt1
i32.const 0
i32.const 1
i32.const 0
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/gt2
global.get $std/operator-overloading/gt1
global.get $std/operator-overloading/gt2
call $std/operator-overloading/Tester.greater
global.set $std/operator-overloading/gt
global.get $std/operator-overloading/gt
i32.const 1
i32.eq
i32.eqz
if
i32.const 0
i32.const 8
i32.const 221
i32.const 0
call $~lib/env/abort
unreachable
end
i32.const 0
i32.const 2
i32.const 2
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/gte1
i32.const 0
i32.const 2
i32.const 2
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/gte2
global.get $std/operator-overloading/gte1
global.get $std/operator-overloading/gte2
call $std/operator-overloading/Tester.greaterEquals
global.set $std/operator-overloading/gte
global.get $std/operator-overloading/gte
i32.const 1
i32.eq
i32.eqz
if
i32.const 0
i32.const 8
i32.const 227
i32.const 0
call $~lib/env/abort
unreachable
end
i32.const 0
i32.const 5
i32.const -1
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/le1
i32.const 0
i32.const 6
i32.const 6
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/le2
global.get $std/operator-overloading/le1
global.get $std/operator-overloading/le2
call $std/operator-overloading/Tester.less
global.set $std/operator-overloading/le
global.get $std/operator-overloading/le
i32.const 1
i32.eq
i32.eqz
if
i32.const 0
i32.const 8
i32.const 233
i32.const 0
call $~lib/env/abort
unreachable
end
i32.const 0
i32.const 4
i32.const 3
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/leq1
i32.const 0
i32.const 4
i32.const 3
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/leq2
global.get $std/operator-overloading/leq1
global.get $std/operator-overloading/leq2
call $std/operator-overloading/Tester.lessEquals
global.set $std/operator-overloading/leq
global.get $std/operator-overloading/leq
i32.const 1
i32.eq
i32.eqz
if
i32.const 0
i32.const 8
i32.const 239
i32.const 0
call $~lib/env/abort
unreachable
end
i32.const 0
i32.const 8
i32.const 16
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/shr
global.get $std/operator-overloading/shr
i32.const 3
call $std/operator-overloading/Tester.shr
global.set $std/operator-overloading/sres
global.get $std/operator-overloading/sres
i32.load
i32.const 1
i32.eq
local.tee $0
if (result i32)
global.get $std/operator-overloading/sres
i32.load offset=4
i32.const 2
i32.eq
else
local.get $0
end
i32.eqz
if
i32.const 0
i32.const 8
i32.const 244
i32.const 0
call $~lib/env/abort
unreachable
end
i32.const 0
i32.const -8
i32.const -16
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/shu
global.get $std/operator-overloading/shu
i32.const 3
call $std/operator-overloading/Tester.shu
global.set $std/operator-overloading/ures
global.get $std/operator-overloading/ures
i32.load
i32.const 536870911
i32.eq
local.tee $0
if (result i32)
global.get $std/operator-overloading/ures
i32.load offset=4
i32.const 536870910
i32.eq
else
local.get $0
end
i32.eqz
if
i32.const 0
i32.const 8
i32.const 249
i32.const 0
call $~lib/env/abort
unreachable
end
i32.const 0
i32.const 1
i32.const 2
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/shl
global.get $std/operator-overloading/shl
i32.const 3
call $std/operator-overloading/Tester.shl
global.set $std/operator-overloading/sres
global.get $std/operator-overloading/sres
i32.load
i32.const 8
i32.eq
local.tee $0
if (result i32)
global.get $std/operator-overloading/sres
i32.load offset=4
i32.const 16
i32.eq
else
local.get $0
end
i32.eqz
if
i32.const 0
i32.const 8
i32.const 254
i32.const 0
call $~lib/env/abort
unreachable
end
i32.const 0
i32.const 1
i32.const -2
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/pos
global.get $std/operator-overloading/pos
call $std/operator-overloading/Tester.pos
global.set $std/operator-overloading/pres
global.get $std/operator-overloading/pres
i32.load
global.get $std/operator-overloading/pos
i32.load
i32.eq
local.tee $0
if (result i32)
global.get $std/operator-overloading/pres
i32.load offset=4
global.get $std/operator-overloading/pos
i32.load offset=4
i32.eq
else
local.get $0
end
i32.eqz
if
i32.const 0
i32.const 8
i32.const 259
i32.const 0
call $~lib/env/abort
unreachable
end
i32.const 0
i32.const -1
i32.const -2
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/neg
global.get $std/operator-overloading/neg
call $std/operator-overloading/Tester.neg
global.set $std/operator-overloading/nres
global.get $std/operator-overloading/nres
i32.load
i32.const 0
global.get $std/operator-overloading/neg
i32.load
i32.sub
i32.eq
local.tee $0
if (result i32)
global.get $std/operator-overloading/nres
i32.load offset=4
i32.const 0
global.get $std/operator-overloading/neg
i32.load offset=4
i32.sub
i32.eq
else
local.get $0
end
i32.eqz
if
i32.const 0
i32.const 8
i32.const 264
i32.const 0
call $~lib/env/abort
unreachable
end
i32.const 0
i32.const 255
i32.const 16
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/not
global.get $std/operator-overloading/not
call $std/operator-overloading/Tester.not
global.set $std/operator-overloading/res
global.get $std/operator-overloading/res
i32.load
global.get $std/operator-overloading/not
i32.load
i32.const -1
i32.xor
i32.eq
local.tee $0
if (result i32)
global.get $std/operator-overloading/res
i32.load offset=4
global.get $std/operator-overloading/not
i32.load offset=4
i32.const -1
i32.xor
i32.eq
else
local.get $0
end
i32.eqz
if
i32.const 0
i32.const 8
i32.const 269
i32.const 0
call $~lib/env/abort
unreachable
end
i32.const 0
i32.const 0
i32.const 0
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/excl
global.get $std/operator-overloading/excl
call $std/operator-overloading/Tester.excl
global.set $std/operator-overloading/bres
global.get $std/operator-overloading/bres
global.get $std/operator-overloading/excl
i32.load
i32.eqz
local.tee $0
if (result i32)
global.get $std/operator-overloading/excl
i32.load offset=4
i32.eqz
else
local.get $0
end
i32.eq
i32.eqz
if
i32.const 0
i32.const 8
i32.const 274
i32.const 0
call $~lib/env/abort
unreachable
end
global.get $std/operator-overloading/bres
i32.const 1
i32.eq
i32.eqz
if
i32.const 0
i32.const 8
i32.const 275
i32.const 0
call $~lib/env/abort
unreachable
end
i32.const 0
i32.const 0
i32.const 1
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/incdec
global.get $std/operator-overloading/incdec
call $std/operator-overloading/Tester#inc
global.set $std/operator-overloading/incdec
global.get $std/operator-overloading/incdec
i32.load
i32.const 1
i32.eq
local.tee $0
if (result i32)
global.get $std/operator-overloading/incdec
i32.load offset=4
i32.const 2
i32.eq
else
local.get $0
end
i32.eqz
if
i32.const 0
i32.const 8
i32.const 281
i32.const 0
call $~lib/env/abort
unreachable
end
global.get $std/operator-overloading/incdec
call $std/operator-overloading/Tester#dec
global.set $std/operator-overloading/incdec
global.get $std/operator-overloading/incdec
i32.load
i32.const 0
i32.eq
local.tee $0
if (result i32)
global.get $std/operator-overloading/incdec
i32.load offset=4
i32.const 1
i32.eq
else
local.get $0
end
i32.eqz
if
i32.const 0
i32.const 8
i32.const 284
i32.const 0
call $~lib/env/abort
unreachable
end
i32.const 0
i32.const 0
i32.const 1
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/incdec
block (result i32)
global.get $std/operator-overloading/incdec
local.tee $0
call $std/operator-overloading/Tester#postInc
global.set $std/operator-overloading/incdec
local.get $0
end
global.set $std/operator-overloading/tmp
global.get $std/operator-overloading/tmp
i32.load
i32.const 0
i32.eq
local.tee $0
if (result i32)
global.get $std/operator-overloading/tmp
i32.load offset=4
i32.const 1
i32.eq
else
local.get $0
end
i32.eqz
if
i32.const 0
i32.const 8
i32.const 289
i32.const 0
call $~lib/env/abort
unreachable
end
global.get $std/operator-overloading/incdec
i32.load
i32.const 1
i32.eq
local.tee $0
if (result i32)
global.get $std/operator-overloading/incdec
i32.load offset=4
i32.const 2
i32.eq
else
local.get $0
end
i32.eqz
if
i32.const 0
i32.const 8
i32.const 290
i32.const 0
call $~lib/env/abort
unreachable
end
block (result i32)
global.get $std/operator-overloading/incdec
local.tee $0
call $std/operator-overloading/Tester#postDec
global.set $std/operator-overloading/incdec
local.get $0
end
global.set $std/operator-overloading/tmp
global.get $std/operator-overloading/tmp
i32.load
i32.const 1
i32.eq
local.tee $0
if (result i32)
global.get $std/operator-overloading/tmp
i32.load offset=4
i32.const 2
i32.eq
else
local.get $0
end
i32.eqz
if
i32.const 0
i32.const 8
i32.const 293
i32.const 0
call $~lib/env/abort
unreachable
end
global.get $std/operator-overloading/incdec
i32.load
i32.const 0
i32.eq
local.tee $0
if (result i32)
global.get $std/operator-overloading/incdec
i32.load offset=4
i32.const 1
i32.eq
else
local.get $0
end
i32.eqz
if
i32.const 0
i32.const 8
i32.const 294
i32.const 0
call $~lib/env/abort
unreachable
end
i32.const 0
i32.const 1
i32.const 2
call $std/operator-overloading/TesterInlineStatic#constructor
global.set $std/operator-overloading/ais1
block $std/operator-overloading/TesterInlineStatic.postInc|inlined.0 (result i32)
global.get $std/operator-overloading/ais1
local.set $0
i32.const 0
local.get $0
i32.load
i32.const 1
i32.add
local.get $0
i32.load offset=4
i32.const 1
i32.add
call $std/operator-overloading/TesterInlineStatic#constructor
end
global.set $std/operator-overloading/ais1
i32.const 0
i32.const 2
i32.const 3
call $std/operator-overloading/TesterInlineStatic#constructor
global.set $std/operator-overloading/ais2
block $std/operator-overloading/TesterInlineStatic.add|inlined.0 (result i32)
global.get $std/operator-overloading/ais1
local.set $0
global.get $std/operator-overloading/ais2
local.set $1
i32.const 0
local.get $0
i32.load
local.get $1
i32.load
i32.add
local.get $0
i32.load offset=4
local.get $1
i32.load offset=4
i32.add
call $std/operator-overloading/TesterInlineStatic#constructor
end
global.set $std/operator-overloading/ais
global.get $std/operator-overloading/ais
i32.load
i32.const 4
i32.eq
local.tee $1
if (result i32)
global.get $std/operator-overloading/ais
i32.load offset=4
i32.const 6
i32.eq
else
local.get $1
end
i32.eqz
if
i32.const 0
i32.const 8
i32.const 314
i32.const 0
call $~lib/env/abort
unreachable
end
i32.const 0
i32.const 1
i32.const 2
call $std/operator-overloading/TesterInlineInstance#constructor
global.set $std/operator-overloading/aii1
block $std/operator-overloading/TesterInlineInstance#postInc|inlined.0 (result i32)
global.get $std/operator-overloading/aii1
local.set $1
i32.const 0
local.get $1
i32.load
i32.const 1
i32.add
local.get $1
i32.load offset=4
i32.const 1
i32.add
call $std/operator-overloading/TesterInlineInstance#constructor
end
global.set $std/operator-overloading/aii1
i32.const 0
i32.const 2
i32.const 3
call $std/operator-overloading/TesterInlineInstance#constructor
global.set $std/operator-overloading/aii2
block $std/operator-overloading/TesterInlineInstance#add|inlined.0 (result i32)
global.get $std/operator-overloading/aii1
local.set $1
global.get $std/operator-overloading/aii2
local.set $0
i32.const 0
local.get $1
i32.load
local.get $0
i32.load
i32.add
local.get $1
i32.load offset=4
local.get $0
i32.load offset=4
i32.add
call $std/operator-overloading/TesterInlineInstance#constructor
end
global.set $std/operator-overloading/aii
global.get $std/operator-overloading/aii
i32.load
i32.const 4
i32.eq
local.tee $0
if (result i32)
global.get $std/operator-overloading/aii
i32.load offset=4
i32.const 6
i32.eq
else
local.get $0
end
i32.eqz
if
i32.const 0
i32.const 8
i32.const 334
i32.const 0
call $~lib/env/abort
unreachable
end
)
(func $start (; 36 ;) (type $FUNCSIG$v)
call $start:std/operator-overloading
)
(func $null (; 37 ;) (type $FUNCSIG$v)
)
)