mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-06-24 04:01:46 +00:00
Move some stuff around, update README
This commit is contained in:
3
lib/i64/build/.gitignore
vendored
Normal file
3
lib/i64/build/.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
*.wasm
|
||||
*.wasm.map
|
||||
*.asm.js
|
43
lib/i64/build/optimized.d.ts
vendored
Normal file
43
lib/i64/build/optimized.d.ts
vendored
Normal file
@ -0,0 +1,43 @@
|
||||
declare module ASModule {
|
||||
type i8 = number;
|
||||
type i16 = number;
|
||||
type i32 = number;
|
||||
type u8 = number;
|
||||
type u16 = number;
|
||||
type u32 = number;
|
||||
type f32 = number;
|
||||
type f64 = number;
|
||||
type bool = any;
|
||||
function getLo(): u32;
|
||||
function getHi(): u32;
|
||||
function clz(loLeft: u32, hiLeft: u32): void;
|
||||
function ctz(loLeft: u32, hiLeft: u32): void;
|
||||
function popcnt(loLeft: u32, hiLeft: u32): void;
|
||||
function eqz(loLeft: u32, hiLeft: u32): void;
|
||||
function add(loLeft: u32, hiLeft: u32, loRight: u32, hiRight: u32): void;
|
||||
function sub(loLeft: u32, hiLeft: u32, loRight: u32, hiRight: u32): void;
|
||||
function mul(loLeft: u32, hiLeft: u32, loRight: u32, hiRight: u32): void;
|
||||
function div_s(loLeft: u32, hiLeft: u32, loRight: u32, hiRight: u32): void;
|
||||
function div_u(loLeft: u32, hiLeft: u32, loRight: u32, hiRight: u32): void;
|
||||
function rem_s(loLeft: u32, hiLeft: u32, loRight: u32, hiRight: u32): void;
|
||||
function rem_u(loLeft: u32, hiLeft: u32, loRight: u32, hiRight: u32): void;
|
||||
function and(loLeft: u32, hiLeft: u32, loRight: u32, hiRight: u32): void;
|
||||
function or(loLeft: u32, hiLeft: u32, loRight: u32, hiRight: u32): void;
|
||||
function xor(loLeft: u32, hiLeft: u32, loRight: u32, hiRight: u32): void;
|
||||
function shl(loLeft: u32, hiLeft: u32, loRight: u32, hiRight: u32): void;
|
||||
function shr_s(loLeft: u32, hiLeft: u32, loRight: u32, hiRight: u32): void;
|
||||
function shr_u(loLeft: u32, hiLeft: u32, loRight: u32, hiRight: u32): void;
|
||||
function rotl(loLeft: u32, hiLeft: u32, loRight: u32, hiRight: u32): void;
|
||||
function rotr(loLeft: u32, hiLeft: u32, loRight: u32, hiRight: u32): void;
|
||||
function eq(loLeft: u32, hiLeft: u32, loRight: u32, hiRight: u32): void;
|
||||
function ne(loLeft: u32, hiLeft: u32, loRight: u32, hiRight: u32): void;
|
||||
function lt_s(loLeft: u32, hiLeft: u32, loRight: u32, hiRight: u32): void;
|
||||
function lt_u(loLeft: u32, hiLeft: u32, loRight: u32, hiRight: u32): void;
|
||||
function le_s(loLeft: u32, hiLeft: u32, loRight: u32, hiRight: u32): void;
|
||||
function le_u(loLeft: u32, hiLeft: u32, loRight: u32, hiRight: u32): void;
|
||||
function gt_s(loLeft: u32, hiLeft: u32, loRight: u32, hiRight: u32): void;
|
||||
function gt_u(loLeft: u32, hiLeft: u32, loRight: u32, hiRight: u32): void;
|
||||
function ge_s(loLeft: u32, hiLeft: u32, loRight: u32, hiRight: u32): void;
|
||||
function ge_u(loLeft: u32, hiLeft: u32, loRight: u32, hiRight: u32): void;
|
||||
}
|
||||
export default ASModule;
|
695
lib/i64/build/optimized.wat
Normal file
695
lib/i64/build/optimized.wat
Normal file
@ -0,0 +1,695 @@
|
||||
(module
|
||||
(type $FUNCSIG$i (func (result i32)))
|
||||
(type $FUNCSIG$vii (func (param i32 i32)))
|
||||
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
|
||||
(type $FUNCSIG$v (func))
|
||||
(memory $0 0)
|
||||
(global $assembly/i64/lo (mut i32) (i32.const 0))
|
||||
(global $assembly/i64/hi (mut i32) (i32.const 0))
|
||||
(export "memory" (memory $0))
|
||||
(export "getLo" (func $assembly/i64/getLo))
|
||||
(export "getHi" (func $assembly/i64/getHi))
|
||||
(export "clz" (func $assembly/i64/clz))
|
||||
(export "ctz" (func $assembly/i64/ctz))
|
||||
(export "popcnt" (func $assembly/i64/popcnt))
|
||||
(export "eqz" (func $assembly/i64/eqz))
|
||||
(export "add" (func $assembly/i64/add))
|
||||
(export "sub" (func $assembly/i64/sub))
|
||||
(export "mul" (func $assembly/i64/mul))
|
||||
(export "div_s" (func $assembly/i64/div_s))
|
||||
(export "div_u" (func $assembly/i64/div_u))
|
||||
(export "rem_s" (func $assembly/i64/rem_s))
|
||||
(export "rem_u" (func $assembly/i64/rem_u))
|
||||
(export "and" (func $assembly/i64/and))
|
||||
(export "or" (func $assembly/i64/or))
|
||||
(export "xor" (func $assembly/i64/xor))
|
||||
(export "shl" (func $assembly/i64/shl))
|
||||
(export "shr_s" (func $assembly/i64/shr_s))
|
||||
(export "shr_u" (func $assembly/i64/shr_u))
|
||||
(export "rotl" (func $assembly/i64/rotl))
|
||||
(export "rotr" (func $assembly/i64/rotr))
|
||||
(export "eq" (func $assembly/i64/eq))
|
||||
(export "ne" (func $assembly/i64/ne))
|
||||
(export "lt_s" (func $assembly/i64/lt_s))
|
||||
(export "lt_u" (func $assembly/i64/lt_u))
|
||||
(export "le_s" (func $assembly/i64/le_s))
|
||||
(export "le_u" (func $assembly/i64/le_u))
|
||||
(export "gt_s" (func $assembly/i64/gt_s))
|
||||
(export "gt_u" (func $assembly/i64/gt_u))
|
||||
(export "ge_s" (func $assembly/i64/ge_s))
|
||||
(export "ge_u" (func $assembly/i64/ge_u))
|
||||
(func $assembly/i64/getLo (; 0 ;) (type $FUNCSIG$i) (result i32)
|
||||
global.get $assembly/i64/lo
|
||||
)
|
||||
(func $assembly/i64/getHi (; 1 ;) (type $FUNCSIG$i) (result i32)
|
||||
global.get $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/clz (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.clz
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/lo
|
||||
i32.const 0
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/ctz (; 3 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.ctz
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/lo
|
||||
i32.const 0
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/popcnt (; 4 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.popcnt
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/lo
|
||||
i32.const 0
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/eqz (; 5 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.eqz
|
||||
global.set $assembly/i64/lo
|
||||
i32.const 0
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/add (; 6 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i64)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.add
|
||||
local.tee $4
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/lo
|
||||
local.get $4
|
||||
i64.const 32
|
||||
i64.shr_u
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/sub (; 7 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i64)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.sub
|
||||
local.tee $4
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/lo
|
||||
local.get $4
|
||||
i64.const 32
|
||||
i64.shr_u
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/mul (; 8 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i64)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.mul
|
||||
local.tee $4
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/lo
|
||||
local.get $4
|
||||
i64.const 32
|
||||
i64.shr_u
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/div_s (; 9 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i64)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.div_s
|
||||
local.tee $4
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/lo
|
||||
local.get $4
|
||||
i64.const 32
|
||||
i64.shr_u
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/div_u (; 10 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i64)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.div_u
|
||||
local.tee $4
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/lo
|
||||
local.get $4
|
||||
i64.const 32
|
||||
i64.shr_u
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/rem_s (; 11 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i64)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.rem_s
|
||||
local.tee $4
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/lo
|
||||
local.get $4
|
||||
i64.const 32
|
||||
i64.shr_u
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/rem_u (; 12 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i64)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.rem_u
|
||||
local.tee $4
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/lo
|
||||
local.get $4
|
||||
i64.const 32
|
||||
i64.shr_u
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/and (; 13 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i64)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.and
|
||||
local.tee $4
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/lo
|
||||
local.get $4
|
||||
i64.const 32
|
||||
i64.shr_u
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/or (; 14 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i64)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.or
|
||||
local.tee $4
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/lo
|
||||
local.get $4
|
||||
i64.const 32
|
||||
i64.shr_u
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/xor (; 15 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i64)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.xor
|
||||
local.tee $4
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/lo
|
||||
local.get $4
|
||||
i64.const 32
|
||||
i64.shr_u
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/shl (; 16 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i64)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.shl
|
||||
local.tee $4
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/lo
|
||||
local.get $4
|
||||
i64.const 32
|
||||
i64.shr_u
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/shr_s (; 17 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i64)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.shr_s
|
||||
local.tee $4
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/lo
|
||||
local.get $4
|
||||
i64.const 32
|
||||
i64.shr_u
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/shr_u (; 18 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i64)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.shr_u
|
||||
local.tee $4
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/lo
|
||||
local.get $4
|
||||
i64.const 32
|
||||
i64.shr_u
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/rotl (; 19 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i64)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.rotl
|
||||
local.tee $4
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/lo
|
||||
local.get $4
|
||||
i64.const 32
|
||||
i64.shr_u
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/rotr (; 20 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i64)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.rotr
|
||||
local.tee $4
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/lo
|
||||
local.get $4
|
||||
i64.const 32
|
||||
i64.shr_u
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/eq (; 21 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.eq
|
||||
global.set $assembly/i64/lo
|
||||
i32.const 0
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/ne (; 22 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.ne
|
||||
global.set $assembly/i64/lo
|
||||
i32.const 0
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/lt_s (; 23 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.lt_s
|
||||
global.set $assembly/i64/lo
|
||||
i32.const 0
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/lt_u (; 24 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.lt_u
|
||||
global.set $assembly/i64/lo
|
||||
i32.const 0
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/le_s (; 25 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.le_s
|
||||
global.set $assembly/i64/lo
|
||||
i32.const 0
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/le_u (; 26 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.le_u
|
||||
global.set $assembly/i64/lo
|
||||
i32.const 0
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/gt_s (; 27 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.gt_s
|
||||
global.set $assembly/i64/lo
|
||||
i32.const 0
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/gt_u (; 28 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.gt_u
|
||||
global.set $assembly/i64/lo
|
||||
i32.const 0
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/ge_s (; 29 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.ge_s
|
||||
global.set $assembly/i64/lo
|
||||
i32.const 0
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/ge_u (; 30 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.ge_u
|
||||
global.set $assembly/i64/lo
|
||||
i32.const 0
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $null (; 31 ;) (type $FUNCSIG$v)
|
||||
nop
|
||||
)
|
||||
)
|
753
lib/i64/build/untouched.wat
Normal file
753
lib/i64/build/untouched.wat
Normal file
@ -0,0 +1,753 @@
|
||||
(module
|
||||
(type $FUNCSIG$i (func (result i32)))
|
||||
(type $FUNCSIG$vii (func (param i32 i32)))
|
||||
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
|
||||
(type $FUNCSIG$v (func))
|
||||
(memory $0 0)
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $assembly/i64/lo (mut i32) (i32.const 0))
|
||||
(global $assembly/i64/hi (mut i32) (i32.const 0))
|
||||
(export "memory" (memory $0))
|
||||
(export "getLo" (func $assembly/i64/getLo))
|
||||
(export "getHi" (func $assembly/i64/getHi))
|
||||
(export "clz" (func $assembly/i64/clz))
|
||||
(export "ctz" (func $assembly/i64/ctz))
|
||||
(export "popcnt" (func $assembly/i64/popcnt))
|
||||
(export "eqz" (func $assembly/i64/eqz))
|
||||
(export "add" (func $assembly/i64/add))
|
||||
(export "sub" (func $assembly/i64/sub))
|
||||
(export "mul" (func $assembly/i64/mul))
|
||||
(export "div_s" (func $assembly/i64/div_s))
|
||||
(export "div_u" (func $assembly/i64/div_u))
|
||||
(export "rem_s" (func $assembly/i64/rem_s))
|
||||
(export "rem_u" (func $assembly/i64/rem_u))
|
||||
(export "and" (func $assembly/i64/and))
|
||||
(export "or" (func $assembly/i64/or))
|
||||
(export "xor" (func $assembly/i64/xor))
|
||||
(export "shl" (func $assembly/i64/shl))
|
||||
(export "shr_s" (func $assembly/i64/shr_s))
|
||||
(export "shr_u" (func $assembly/i64/shr_u))
|
||||
(export "rotl" (func $assembly/i64/rotl))
|
||||
(export "rotr" (func $assembly/i64/rotr))
|
||||
(export "eq" (func $assembly/i64/eq))
|
||||
(export "ne" (func $assembly/i64/ne))
|
||||
(export "lt_s" (func $assembly/i64/lt_s))
|
||||
(export "lt_u" (func $assembly/i64/lt_u))
|
||||
(export "le_s" (func $assembly/i64/le_s))
|
||||
(export "le_u" (func $assembly/i64/le_u))
|
||||
(export "gt_s" (func $assembly/i64/gt_s))
|
||||
(export "gt_u" (func $assembly/i64/gt_u))
|
||||
(export "ge_s" (func $assembly/i64/ge_s))
|
||||
(export "ge_u" (func $assembly/i64/ge_u))
|
||||
(func $assembly/i64/getLo (; 0 ;) (type $FUNCSIG$i) (result i32)
|
||||
global.get $assembly/i64/lo
|
||||
)
|
||||
(func $assembly/i64/getHi (; 1 ;) (type $FUNCSIG$i) (result i32)
|
||||
global.get $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/clz (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(local $2 i64)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.clz
|
||||
local.set $2
|
||||
local.get $2
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/lo
|
||||
i32.const 0
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/ctz (; 3 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(local $2 i64)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.ctz
|
||||
local.set $2
|
||||
local.get $2
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/lo
|
||||
i32.const 0
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/popcnt (; 4 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(local $2 i64)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.popcnt
|
||||
local.set $2
|
||||
local.get $2
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/lo
|
||||
i32.const 0
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/eqz (; 5 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(local $2 i32)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.eqz
|
||||
local.set $2
|
||||
local.get $2
|
||||
global.set $assembly/i64/lo
|
||||
i32.const 0
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/add (; 6 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i64)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.add
|
||||
local.set $4
|
||||
local.get $4
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/lo
|
||||
local.get $4
|
||||
i64.const 32
|
||||
i64.shr_u
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/sub (; 7 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i64)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.sub
|
||||
local.set $4
|
||||
local.get $4
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/lo
|
||||
local.get $4
|
||||
i64.const 32
|
||||
i64.shr_u
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/mul (; 8 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i64)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.mul
|
||||
local.set $4
|
||||
local.get $4
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/lo
|
||||
local.get $4
|
||||
i64.const 32
|
||||
i64.shr_u
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/div_s (; 9 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i64)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.div_s
|
||||
local.set $4
|
||||
local.get $4
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/lo
|
||||
local.get $4
|
||||
i64.const 32
|
||||
i64.shr_u
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/div_u (; 10 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i64)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.div_u
|
||||
local.set $4
|
||||
local.get $4
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/lo
|
||||
local.get $4
|
||||
i64.const 32
|
||||
i64.shr_u
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/rem_s (; 11 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i64)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.rem_s
|
||||
local.set $4
|
||||
local.get $4
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/lo
|
||||
local.get $4
|
||||
i64.const 32
|
||||
i64.shr_u
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/rem_u (; 12 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i64)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.rem_u
|
||||
local.set $4
|
||||
local.get $4
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/lo
|
||||
local.get $4
|
||||
i64.const 32
|
||||
i64.shr_u
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/and (; 13 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i64)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.and
|
||||
local.set $4
|
||||
local.get $4
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/lo
|
||||
local.get $4
|
||||
i64.const 32
|
||||
i64.shr_u
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/or (; 14 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i64)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.or
|
||||
local.set $4
|
||||
local.get $4
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/lo
|
||||
local.get $4
|
||||
i64.const 32
|
||||
i64.shr_u
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/xor (; 15 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i64)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.xor
|
||||
local.set $4
|
||||
local.get $4
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/lo
|
||||
local.get $4
|
||||
i64.const 32
|
||||
i64.shr_u
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/shl (; 16 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i64)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.shl
|
||||
local.set $4
|
||||
local.get $4
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/lo
|
||||
local.get $4
|
||||
i64.const 32
|
||||
i64.shr_u
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/shr_s (; 17 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i64)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.shr_s
|
||||
local.set $4
|
||||
local.get $4
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/lo
|
||||
local.get $4
|
||||
i64.const 32
|
||||
i64.shr_u
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/shr_u (; 18 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i64)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.shr_u
|
||||
local.set $4
|
||||
local.get $4
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/lo
|
||||
local.get $4
|
||||
i64.const 32
|
||||
i64.shr_u
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/rotl (; 19 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i64)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.rotl
|
||||
local.set $4
|
||||
local.get $4
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/lo
|
||||
local.get $4
|
||||
i64.const 32
|
||||
i64.shr_u
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/rotr (; 20 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i64)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.rotr
|
||||
local.set $4
|
||||
local.get $4
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/lo
|
||||
local.get $4
|
||||
i64.const 32
|
||||
i64.shr_u
|
||||
i32.wrap_i64
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/eq (; 21 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i32)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.eq
|
||||
local.set $4
|
||||
local.get $4
|
||||
global.set $assembly/i64/lo
|
||||
i32.const 0
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/ne (; 22 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i32)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.ne
|
||||
local.set $4
|
||||
local.get $4
|
||||
global.set $assembly/i64/lo
|
||||
i32.const 0
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/lt_s (; 23 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i32)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.lt_s
|
||||
local.set $4
|
||||
local.get $4
|
||||
global.set $assembly/i64/lo
|
||||
i32.const 0
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/lt_u (; 24 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i32)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.lt_u
|
||||
local.set $4
|
||||
local.get $4
|
||||
global.set $assembly/i64/lo
|
||||
i32.const 0
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/le_s (; 25 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i32)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.le_s
|
||||
local.set $4
|
||||
local.get $4
|
||||
global.set $assembly/i64/lo
|
||||
i32.const 0
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/le_u (; 26 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i32)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.le_u
|
||||
local.set $4
|
||||
local.get $4
|
||||
global.set $assembly/i64/lo
|
||||
i32.const 0
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/gt_s (; 27 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i32)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.gt_s
|
||||
local.set $4
|
||||
local.get $4
|
||||
global.set $assembly/i64/lo
|
||||
i32.const 0
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/gt_u (; 28 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i32)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.gt_u
|
||||
local.set $4
|
||||
local.get $4
|
||||
global.set $assembly/i64/lo
|
||||
i32.const 0
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/ge_s (; 29 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i32)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.ge_s
|
||||
local.set $4
|
||||
local.get $4
|
||||
global.set $assembly/i64/lo
|
||||
i32.const 0
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $assembly/i64/ge_u (; 30 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i32)
|
||||
local.get $0
|
||||
i64.extend_i32_u
|
||||
local.get $1
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
local.get $2
|
||||
i64.extend_i32_u
|
||||
local.get $3
|
||||
i64.extend_i32_u
|
||||
i64.const 32
|
||||
i64.shl
|
||||
i64.or
|
||||
i64.ge_u
|
||||
local.set $4
|
||||
local.get $4
|
||||
global.set $assembly/i64/lo
|
||||
i32.const 0
|
||||
global.set $assembly/i64/hi
|
||||
)
|
||||
(func $null (; 31 ;) (type $FUNCSIG$v)
|
||||
)
|
||||
)
|
Reference in New Issue
Block a user