Packages
orb
0.0.36
0.2.2
0.2.1
0.2.0
0.1.1
0.1.0
0.0.51
0.0.49
0.0.48
0.0.47
0.0.46
0.0.45
0.0.44
0.0.43
0.0.42
0.0.41
0.0.40
0.0.39
0.0.38
0.0.37
0.0.36
0.0.35
0.0.34
0.0.33
0.0.32
0.0.31
0.0.30
0.0.28
0.0.27
0.0.26
0.0.25
0.0.24
0.0.23
0.0.22
0.0.21
0.0.20
0.0.19
0.0.18
0.0.17
0.0.16
0.0.15
0.0.14
0.0.13
0.0.12
retired
0.0.11
0.0.10
0.0.9
0.0.8
0.0.7
0.0.6
0.0.5
0.0.4
0.0.3
0.0.2
0.0.1
DSL for WebAssembly
Current section
Files
Jump to
Current section
Files
lib/orb/i64.ex
defmodule Orb.I64 do
@moduledoc """
Type for 64-bit integer.
"""
require alias Orb.Ops
alias Orb.Instruction
@behaviour Orb.CustomType
@impl Orb.CustomType
def wasm_type(), do: :i64
# TODO: is the byte count of the pointer, or the items?
# I think this should actually be removed from Orb.CustomType
@impl Orb.CustomType
def byte_count(), do: 8
for op <- Ops.i64(1) do
def unquote(op)(a) do
Instruction.i64(unquote(op), a)
end
end
for op <- Ops.i64(2) do
case op do
:and ->
def band(a, b) do
Instruction.i64(:and, a, b)
end
_ ->
def unquote(op)(a, b) do
Instruction.i64(unquote(op), a, b)
end
end
end
end