Files

73 lines
1.2 KiB
Go

// Code generated by wasm2go. DO NOT EDIT.
package ncruces
import (
"math"
"math/bits"
)
type Module struct {
}
func New() *Module {
m := new(Module)
return m
}
func (m *Module) Xadd(v0, v1 int32) int32 {
return v0 + v1
}
func (m *Module) Xsub(v0, v1 int32) int32 {
return v0 - v1
}
func (m *Module) Xmul64(v0, v1 int64) int64 {
return v0 * v1
}
func (m *Module) Xdiv_s(v0, v1 int32) int32 {
t0 := i32_div_s(v0, v1)
return t0
}
func (m *Module) Xshifts(v0, v1 int32) int32 {
return i32_shr_u(i32_shl(v0, v1), v1)
}
func (m *Module) Xrotl(v0, v1 int32) int32 {
return i32_rotl(v0, v1)
}
func (m *Module) Xlt_s(v0, v1 int32) int32 {
var p0 int32
if v0 < v1 {
p0 = 1
}
return p0
}
func (m *Module) Xlt_u(v0, v1 int32) int32 {
var p0 int32
if uint32(v0) < uint32(v1) {
p0 = 1
}
return p0
}
//go:nosplit
func i32_div_s(x, y int32) int32 {
if y == -1 && x == math.MinInt32 {
panic("integer overflow")
}
return x / y
}
//go:nosplit
func i32_shl(x, y int32) int32 {
return x << (y & 31)
}
//go:nosplit
func i32_shr_u(x, y int32) int32 {
return int32(uint32(x) >> (y & 31))
}
//go:nosplit
func i32_rotl(x, y int32) int32 {
return int32(bits.RotateLeft32(uint32(x), int(y)))
}