azhzx/qbe/types does not have a README file

    BlkId

    type BlkId = Int

    Addr

    pub(all) struct Addr {
    offset : Con
    base : Ref
    index : Ref
    scale : Int
    } derive(
    Debug
    )

    Addr::new

    fn Addr::new() -> Addr

    AliasInfo

    pub(all) struct AliasInfo {
    kind : AliasType
    base : Ref
    label : Int
    offset : Int64
    slot : Int
    } derive(
    Debug
    )

    AliasInfo::default

    fn AliasInfo::default() -> AliasInfo

    AliasType

    pub(all) enum AliasType {
    ABot
    ALoc
    ACon
    AEsc
    ASym
    AUnk
    } derive(Eq,
    Debug
    )

    AliasType::astack

    fn AliasType::astack(self : AliasType) -> Bool

    BSet

    pub(all) struct BSet {
    nt : Int
    bits : Array[UInt64]
    } derive(
    Debug
    )

    BSet::clr

    fn BSet::clr(self : BSet, elt : Int) -> Unit

    BSet::copy_from

    fn BSet::copy_from(self : BSet, other : BSet) -> Unit

    BSet::count

    fn BSet::count(self : BSet) -> Int

    BSet::diff

    fn BSet::diff(self : BSet, other : BSet) -> Unit

    BSet::each

    fn BSet::each(self : BSet, f : (Int) -> Unit) -> Unit

    BSet::each_from

    fn BSet::each_from(self : BSet, start : Int, f : (Int) -> Unit) -> Unit

    BSet::equal

    fn BSet::equal(self : BSet, other : BSet) -> Bool

    BSet::has

    fn BSet::has(self : BSet, elt : Int) -> Bool

    BSet::inter

    fn BSet::inter(self : BSet, other : BSet) -> Unit

    BSet::iter

    fn BSet::iter(self : BSet, start : Int) -> Int

    BSet::new

    fn BSet::new(nt : Int) -> BSet

    BSet::set

    fn BSet::set(self : BSet, elt : Int) -> Unit

    BSet::union

    fn BSet::union(self : BSet, other : BSet) -> Bool

    BSet::zero

    fn BSet::zero(self : BSet) -> Unit

    Blk

    pub(all) struct Blk {
    id : Int
    name : String
    phi : Array[Phi]
    ins : Array[Ins]
    jmp : Jump
    pred : Array[Int]
    npred : Int
    idom : Int
    dom_link : Int
    dom_next : Int
    fron : Array[Int]
    rpo_id : Int
    loop_depth : Int
    nlive_w : Int
    nlive_d : Int
    in_set : BSet?
    out_set : BSet?
    gen_set : BSet?
    link : Int
    visit : Int
    } derive(
    Debug
    )

    Blk::new

    fn Blk::new(id : Int, name : String) -> Blk

    Class

    pub(all) enum Class {
    Kx
    Kw
    Kl
    Ks
    Kd
    } derive(Eq,
    Debug
    )

    Class - corresponds to enum Class in all.h

    Class::base

    fn Class::base(self : Class) -> Int

    Return the base class: 0 for int (w/l), 1 for float (s/d) (corresponds to C KBASE()).

    Class::code

    fn Class::code(self : Class) -> Int

    Return the class code: Kx->-1, Kw->0, Kl->1, Ks->2, Kd->3.

    Class::from_code

    fn Class::from_code(c : Int) -> Class

    Construct a class from its code: 0->Kw, 1->Kl, 2->Ks, 3->Kd, else Kx.

    Class::wide

    fn Class::wide(self : Class) -> Int

    Return 1 if wide (l/d), 0 otherwise (corresponds to C KWIDE()).

    Con

    pub(all) struct Con {
    kind : ConType
    label : Int
    bits : ConBits
    flt : Int
    is_local : Bool
    } derive(Eq,
    Debug
    )

    Con::add

    fn Con::add(self : Con, other : Con) -> Con

    Con::addr

    fn Con::addr(label : Int) -> Con

    Con::double

    fn Con::double(d : Double) -> Con

    Con::int

    fn Con::int(i : Int64) -> Con

    Con::is_zero

    fn Con::is_zero(self : Con, wide : Bool) -> Bool

    Con::new

    fn Con::new() -> Con

    Con::raw_bits

    fn Con::raw_bits(self : Con) -> Int64

    Con::single

    fn Con::single(s : Float) -> Con

    ConBits

    pub(all) struct ConBits {
    i : Int64
    d : Double
    s : Float
    } derive(Eq,
    Debug
    )

    ConType

    pub(all) enum ConType {
    CUndef
    CBits
    CAddr
    } derive(Eq,
    Debug
    )

    Dat

    pub(all) struct Dat {
    kind : DatKind
    num : Int64
    fltd : Double
    flts : Float
    str : String
    ref_name : String
    ref_offset : Int64
    is_ref : Bool
    is_str : Bool
    is_export : Bool
    } derive(
    Debug
    )

    Dat::align

    fn Dat::align(a : Int64) -> Dat

    Dat::byte

    fn Dat::byte(b : Int64) -> Dat

    Dat::end

    fn Dat::end() -> Dat

    Dat::name

    fn Dat::name(name : String, is_export : Bool) -> Dat

    Dat::ref_to

    fn Dat::ref_to(name : String, offset : Int64) -> Dat

    Dat::start

    fn Dat::start() -> Dat

    Dat::string

    fn Dat::string(s : String) -> Dat

    Dat::zero

    fn Dat::zero(n : Int64) -> Dat

    DatKind

    pub(all) enum DatKind {
    DStart
    DEnd
    DName
    DAlign
    DB
    DH
    DW
    DL
    DZ
    } derive(Eq,
    Debug
    )

    Field

    pub(all) struct Field {
    kind : FieldType
    len : Int
    } derive(Eq,
    Debug
    )

    Field::end

    fn Field::end() -> Field

    Field::new

    fn Field::new(kind : FieldType, len : Int) -> Field

    FieldType

    pub(all) enum FieldType {
    FEnd
    Fb
    Fh
    Fw
    Fl
    Fs
    Fd
    FPad
    FTyp
    } derive(Eq,
    Debug
    )

    pub(all) struct Fn {
    name : String
    start_id : Int
    blks : Array[Blk]
    blk_names : Map[String, Int]
    tmps : Array[Tmp]
    cons : Array[Con]
    mems : Array[Addr]
    rpo : Array[Int]
    def_order : Array[Int]
    ret_ty : Int
    retr : Ref
    reg : UInt64
    slot : Int
    is_export : Bool
    is_vararg : Bool
    has_dynalloc : Bool
    leaf : Bool
    salign : Int
    } derive(
    Debug
    )

    Fn::add_blk

    fn Fn::add_blk(self : Fn, name : String) -> Int

    Fn::add_con

    fn Fn::add_con(self : Fn, con : Con) -> Int

    Fn::add_tmp

    fn Fn::add_tmp(self : Fn, name : String, cls : Class) -> Int

    Fn::blk

    fn Fn::blk(self : Fn, id : Int) -> Blk

    Fn::con

    fn Fn::con(self : Fn, id : Int) -> Con

    Fn::find_blk

    fn Fn::find_blk(self : Fn, name : String) -> Int

    Fn::get_con

    fn Fn::get_con(self : Fn, val : Int64) -> Int

    Fn::get_con_by

    fn Fn::get_con_by(self : Fn, con : Con) -> Int

    Fn::init_regs

    fn Fn::init_regs(self : Fn) -> Unit

    Fn::init_regs_wasm

    fn Fn::init_regs_wasm(self : Fn) -> Unit

    Fn::nblk

    fn Fn::nblk(self : Fn) -> Int

    Fn::ncon

    fn Fn::ncon(self : Fn) -> Int

    Fn::new

    fn Fn::new(name : String) -> Fn

    Fn::new_tmp

    fn Fn::new_tmp(self : Fn, prfx : String, cls : Class) -> Int

    Fn::ntmp

    fn Fn::ntmp(self : Fn) -> Int

    Fn::tmp

    fn Fn::tmp(self : Fn, id : Int) -> Tmp

    FpBits

    pub struct FpBits {
    b0 : Int64
    b1 : Int64
    size : Int
    }

    Ins

    pub(all) struct Ins {
    op : Op
    cls : Class
    to : Ref
    arg1 : Ref
    arg2 : Ref
    } derive(Eq,
    Debug
    )

    Ins::new

    fn Ins::new(op : Op, cls : Class, to : Ref, arg1 : Ref, arg2 : Ref) -> Ins

    Ins::new_void

    fn Ins::new_void(op : Op, cls : Class, arg1 : Ref, arg2 : Ref) -> Ins

    Jump

    pub(all) struct Jump {
    kind : JumpKind
    arg : Ref
    s1 : Int
    s2 : Int
    } derive(
    Debug
    )

    Jump::full

    fn Jump::full(kind : JumpKind, arg : Ref, s1 : Int, s2 : Int) -> Jump

    Jump::new

    fn Jump::new(kind : JumpKind) -> Jump

    JumpKind

    pub(all) enum JumpKind {
    Jxxx
    Jret0
    Jretw
    Jretl
    Jrets
    Jretd
    Jretc
    Jjmp
    Jjnz
    Jjfieq
    Jjfine
    Jjfisge
    Jjfisgt
    Jjfisle
    Jjfislt
    Jjfiuge
    Jjfiugt
    Jjfiule
    Jjfiult
    Jjffeq
    Jjffge
    Jjffgt
    Jjffle
    Jjfflt
    Jjffne
    Jjffo
    Jjffuo
    } derive(Eq,
    Debug
    )

    JumpKind::from_index

    fn JumpKind::from_index(i : Int) -> JumpKind

    JumpKind::index

    fn JumpKind::index(self : JumpKind) -> Int

    JumpKind::is_ret

    fn JumpKind::is_ret(self : JumpKind) -> Bool

    pub(all) enum Op {
    Oxxx
    Add
    Sub
    Div
    Rem
    Udiv
    Urem
    Mul
    And
    Or
    Xor
    Sar
    Shr
    Shl
    Ceqw
    Cnew
    Csgew
    Csgtw
    Cslew
    Csltw
    Cugew
    Cugtw
    Culew
    Cultw
    Ceql
    Cnel
    Csgel
    Csgtl
    Cslel
    Csltl
    Cugel
    Cugtl
    Culel
    Cultl
    Ceqs
    Cges
    Cgts
    Cles
    Clts
    Cnes
    Cos
    Cuos
    Ceqd
    Cged
    Cgtd
    Cled
    Cltd
    Cned
    Cod
    Cuod
    Storeb
    Storeh
    Storew
    Storel
    Stores
    Stored
    Loadsb
    Loadub
    Loadsh
    Loaduh
    Loadsw
    Loaduw
    Load
    Extsb
    Extub
    Extsh
    Extuh
    Extsw
    Extuw
    Exts
    Truncd
    Stosi
    Dtosi
    Swtof
    Sltof
    Cast
    Alloc4
    Alloc8
    Alloc16
    Vaarg
    Vastart
    Copy
    Nop
    Addr
    Blit0
    Blit1
    Swap
    Sign
    Salloc
    Xidiv
    Xdiv
    Xcmp
    Xtest
    Acmp
    Acmn
    Afcmp
    Reqz
    Rnez
    Par
    Parc
    Pare
    Arg
    Argc
    Arge
    Call
    Vacall
    Flagieq
    Flagine
    Flagisge
    Flagisgt
    Flagisle
    Flagislt
    Flagiuge
    Flagiugt
    Flagiule
    Flagiult
    Flagfeq
    Flagfge
    Flagfgt
    Flagfle
    Flagflt
    Flagfne
    Flagfo
    Flagfuo
    Sel0
    Sel1
    Xselieq
    Xseline
    Xselisge
    Xselisgt
    Xselisle
    Xselislt
    Xseliuge
    Xseliugt
    Xseliule
    Xseliult
    Xselfeq
    Xselfge
    Xselfgt
    Xselfle
    Xselflt
    Xselfne
    Xselfo
    Xselfuo
    Argv
    } derive(Eq,
    Debug
    )

    Op::ext_width_idx

    fn Op::ext_width_idx(self : Op) -> Int

    Op::from_index

    fn Op::from_index(i : Int) -> Op

    Op::from_string

    fn Op::from_string(s : String) -> Op

    Op::index

    fn Op::index(self : Op) -> Int

    Op::is_arg

    fn Op::is_arg(self : Op) -> Bool

    Op::is_ext

    fn Op::is_ext(self : Op) -> Bool

    Op::is_load

    fn Op::is_load(self : Op) -> Bool

    Op::is_par

    fn Op::is_par(self : Op) -> Bool

    Op::is_store

    fn Op::is_store(self : Op) -> Bool

    Op::load_width_idx

    fn Op::load_width_idx(self : Op) -> Int

    Op::name

    fn Op::name(self : Op) -> String

    OpInfo

    pub(all) struct OpInfo {
    name : String
    a0 : Array[Int]
    a1 : Array[Int]
    canfold : Bool
    nmem : Int
    zf : Int
    lf : Int
    } derive(
    Debug
    )

    Phi

    pub(all) struct Phi {
    cls : Class
    to : Ref
    args : Array[PhiArg]
    } derive(Eq,
    Debug
    )

    Phi::new

    fn Phi::new(to : Ref, cls : Class) -> Phi

    PhiArg

    pub(all) struct PhiArg {
    value : Ref
    blk_id : Int
    } derive(Eq,
    Debug
    )

    Ref

    pub(all) enum Ref {
    RNone
    RTmp(Int)
    RCon(Int)
    RInt(Int)
    RType(Int)
    RSlot(Int)
    RCall(Int)
    RMem(Int)
    } derive(Eq,
    Debug
    )

    ADT replacing C bit-field (uint type:3; uint val:29)

    Ref::argregs

    fn Ref::argregs(self : Ref) -> (UInt64, Int, Int)

    Ref::arm64_argregs

    fn Ref::arm64_argregs(self : Ref) -> (UInt64, Int, Int)

    Ref::arm64_retregs

    fn Ref::arm64_retregs(self : Ref) -> (UInt64, Int, Int)

    Ref::call

    fn Ref::call(i : Int) -> Ref

    CALL(x) - call result reference

    Ref::call_val

    fn Ref::call_val(self : Ref) -> Int

    call_val - extract call info index, -1 if not a call ref

    Ref::con

    fn Ref::con(i : Int) -> Ref

    CON(x) - constant reference

    Ref::con_val

    fn Ref::con_val(self : Ref) -> Int

    con_val - extract constant index, -1 if not a constant

    Ref::eq

    fn Ref::eq(self : Ref, other : Ref) -> Bool

    Compare two references for equality (corresponds to C req()).

    Ref::is_con

    fn Ref::is_con(self : Ref) -> Bool

    is_con - check for constant reference

    Ref::is_mem

    fn Ref::is_mem(self : Ref) -> Bool

    is_mem - check for memory reference

    Ref::is_none

    fn Ref::is_none(self : Ref) -> Bool

    is_none - check for empty reference

    Ref::is_rint

    fn Ref::is_rint(self : Ref) -> Bool

    is_rint - check for an integer literal reference

    Ref::is_slot

    fn Ref::is_slot(self : Ref) -> Bool

    is_slot - check for slot reference

    Ref::is_tmp

    fn Ref::is_tmp(self : Ref) -> Bool

    is_tmp - check for temporary reference

    Ref::is_typ

    fn Ref::is_typ(self : Ref) -> Bool

    is_typ - check for a type reference

    Ref::la64_argregs

    fn Ref::la64_argregs(self : Ref) -> (UInt64, Int, Int)

    Ref::la64_retregs

    fn Ref::la64_retregs(self : Ref) -> (UInt64, Int, Int)

    Ref::mem

    fn Ref::mem(i : Int) -> Ref

    MEM(x) - memory address reference

    Ref::mem_val

    fn Ref::mem_val(self : Ref) -> Int

    mem_val - extract memory index, -1 if not a memory ref

    Ref::none

    fn Ref::none() -> Ref

    R - empty reference (corresponds to C macro R)

    Ref::retregs

    fn Ref::retregs(self : Ref) -> (UInt64, Int, Int)

    Ref::rint

    fn Ref::rint(i : Int) -> Ref

    INT(x) - integer literal reference (used by blit1's size)

    Ref::rint_val

    fn Ref::rint_val(self : Ref) -> Int

    rint_val - extract integer literal value, -1 if not an RInt

    Ref::rv64_argregs

    fn Ref::rv64_argregs(self : Ref) -> (UInt64, Int, Int)

    Ref::rv64_retregs

    fn Ref::rv64_retregs(self : Ref) -> (UInt64, Int, Int)

    Ref::slot

    fn Ref::slot(i : Int) -> Ref

    SLOT(x) - stack slot reference (value masked to 29 bits, as C SLOT())

    Ref::slot_val

    fn Ref::slot_val(self : Ref) -> Int

    slot_val - extract slot index, -1 if not a slot ref

    Ref::tmp

    fn Ref::tmp(i : Int) -> Ref

    TMP(x) - temporary reference

    Ref::tmp_val

    fn Ref::tmp_val(self : Ref) -> Int

    tmp_val - extract temporary index, -1 if not a temp

    Ref::typ

    fn Ref::typ(i : Int) -> Ref

    TYPE(x) - type reference

    Ref::typ_val

    fn Ref::typ_val(self : Ref) -> Int

    typ_val - extract type index, -1 if not a type ref

    RegHint

    pub(all) struct RegHint {
    r : Int
    w : Int
    m : UInt64
    } derive(
    Debug
    )

    RegHint::default

    fn RegHint::default() -> RegHint

    TargetCfg

    pub struct TargetCfg {
    gpr_base : Int
    fpr_base : Int
    ngpr : Int
    nfpr : Int
    fpr_class_base : Int
    post_call_gpr : Int
    post_call_fpr : Int
    rglob_mask : UInt64
    rsave : Array[Int]
    retregs : (Ref) -> (UInt64, Int, Int)
    argregs : (Ref) -> (UInt64, Int, Int)
    }

    Tmp

    pub(all) struct Tmp {
    name : String
    uses : Array[Use]
    ndef : Int
    nuse : Int
    bid : Int
    cost : Int
    slot : Int
    cls : Class
    hint : RegHint
    is_phi : Int
    alias_info : AliasInfo
    width : TmpWidth
    visit : Int
    } derive(
    Debug
    )

    Tmp::new

    fn Tmp::new(name : String, cls : Class) -> Tmp

    TmpWidth

    pub(all) enum TmpWidth {
    WFull
    Wsb
    Wub
    Wsh
    Wuh
    Wsw
    Wuw
    } derive(Eq,
    Debug
    )

    TmpWidth::code

    fn TmpWidth::code(self : TmpWidth) -> Int

    TmpWidth::from_code

    fn TmpWidth::from_code(c : Int) -> TmpWidth

    Typ

    pub(all) struct Typ {
    name : String
    dark : Int
    align : Int
    size : Int64
    nunion : Int
    fields : Array[Field]
    } derive(Eq,
    Debug
    )

    Typ::new

    fn Typ::new(name : String) -> Typ

    Use

    pub(all) struct Use {
    kind : UseKind
    blk_id : Int
    ins_idx : Int
    arg_num : Int
    } derive(Eq,
    Debug
    )

    UseKind

    pub(all) enum UseKind {
    UXXX
    UPhi
    UIns
    UJmp
    } derive(Eq,
    Debug
    )

    WasmType

    pub enum WasmType {
    Wi32
    Wi64
    Wf32
    Wf64
    WVoid
    } derive(Eq,
    Debug
    )

    let A0 : Int

    let A1 : Int

    let A2 : Int

    let A3 : Int

    let A4 : Int

    let A5 : Int

    let A6 : Int

    let A7 : Int

    ARM64_FP

    let ARM64_FP : Int

    ARM64_IP0

    let ARM64_IP0 : Int

    ARM64_IP1

    let ARM64_IP1 : Int

    ARM64_LR

    let ARM64_LR : Int

    ARM64_R0

    let ARM64_R0 : Int

    ARM64_R1

    let ARM64_R1 : Int

    ARM64_R10

    let ARM64_R10 : Int

    ARM64_R11

    let ARM64_R11 : Int

    ARM64_R12

    let ARM64_R12 : Int

    ARM64_R13

    let ARM64_R13 : Int

    ARM64_R14

    let ARM64_R14 : Int

    ARM64_R15

    let ARM64_R15 : Int

    ARM64_R18

    let ARM64_R18 : Int

    ARM64_R19

    let ARM64_R19 : Int

    ARM64_R2

    let ARM64_R2 : Int

    ARM64_R20

    let ARM64_R20 : Int

    ARM64_R21

    let ARM64_R21 : Int

    ARM64_R22

    let ARM64_R22 : Int

    ARM64_R23

    let ARM64_R23 : Int

    ARM64_R24

    let ARM64_R24 : Int

    ARM64_R25

    let ARM64_R25 : Int

    ARM64_R26

    let ARM64_R26 : Int

    ARM64_R27

    let ARM64_R27 : Int

    ARM64_R28

    let ARM64_R28 : Int

    ARM64_R3

    let ARM64_R3 : Int

    ARM64_R4

    let ARM64_R4 : Int

    ARM64_R5

    let ARM64_R5 : Int

    ARM64_R6

    let ARM64_R6 : Int

    ARM64_R7

    let ARM64_R7 : Int

    ARM64_R8

    let ARM64_R8 : Int

    ARM64_R9

    let ARM64_R9 : Int

    ARM64_SP

    let ARM64_SP : Int

    ARM64_V0

    let ARM64_V0 : Int

    ARM64_V1

    let ARM64_V1 : Int

    ARM64_V10

    let ARM64_V10 : Int

    ARM64_V11

    let ARM64_V11 : Int

    ARM64_V12

    let ARM64_V12 : Int

    ARM64_V13

    let ARM64_V13 : Int

    ARM64_V14

    let ARM64_V14 : Int

    ARM64_V15

    let ARM64_V15 : Int

    ARM64_V16

    let ARM64_V16 : Int

    ARM64_V17

    let ARM64_V17 : Int

    ARM64_V18

    let ARM64_V18 : Int

    ARM64_V19

    let ARM64_V19 : Int

    ARM64_V2

    let ARM64_V2 : Int

    ARM64_V20

    let ARM64_V20 : Int

    ARM64_V21

    let ARM64_V21 : Int

    ARM64_V22

    let ARM64_V22 : Int

    ARM64_V23

    let ARM64_V23 : Int

    ARM64_V24

    let ARM64_V24 : Int

    ARM64_V25

    let ARM64_V25 : Int

    ARM64_V26

    let ARM64_V26 : Int

    ARM64_V27

    let ARM64_V27 : Int

    ARM64_V28

    let ARM64_V28 : Int

    ARM64_V29

    let ARM64_V29 : Int

    ARM64_V3

    let ARM64_V3 : Int

    ARM64_V30

    let ARM64_V30 : Int

    ARM64_V4

    let ARM64_V4 : Int

    ARM64_V5

    let ARM64_V5 : Int

    ARM64_V6

    let ARM64_V6 : Int

    ARM64_V7

    let ARM64_V7 : Int

    ARM64_V8

    let ARM64_V8 : Int

    ARM64_V9

    let ARM64_V9 : Int

    Arm64KmIsWide

    let Arm64KmIsWide : Int

    Arm64NCLR

    let Arm64NCLR : Int

    Arm64NFPR

    let Arm64NFPR : Int

    Arm64NFPS

    let Arm64NFPS : Int

    Arm64NGPR

    let Arm64NGPR : Int

    Arm64NGPS

    let Arm64NGPS : Int

    Arm64NRGLOB

    let Arm64NRGLOB : Int

    Arm64Tmp0

    let Arm64Tmp0 : Int

    FA0

    let FA0 : Int

    FA1

    let FA1 : Int

    FA2

    let FA2 : Int

    FA3

    let FA3 : Int

    FA4

    let FA4 : Int

    FA5

    let FA5 : Int

    FA6

    let FA6 : Int

    FA7

    let FA7 : Int

    let FP : Int

    FS0

    let FS0 : Int

    FS1

    let FS1 : Int

    FS10

    let FS10 : Int

    FS11

    let FS11 : Int

    FS2

    let FS2 : Int

    FS3

    let FS3 : Int

    FS4

    let FS4 : Int

    FS5

    let FS5 : Int

    FS6

    let FS6 : Int

    FS7

    let FS7 : Int

    FS8

    let FS8 : Int

    FS9

    let FS9 : Int

    FT0

    let FT0 : Int

    FT1

    let FT1 : Int

    FT10

    let FT10 : Int

    FT11

    let FT11 : Int

    FT2

    let FT2 : Int

    FT3

    let FT3 : Int

    FT4

    let FT4 : Int

    FT5

    let FT5 : Int

    FT6

    let FT6 : Int

    FT7

    let FT7 : Int

    FT8

    let FT8 : Int

    FT9

    let FT9 : Int

    let GP : Int

    LA_A0

    let LA_A0 : Int

    LA_A1

    let LA_A1 : Int

    LA_A2

    let LA_A2 : Int

    LA_A3

    let LA_A3 : Int

    LA_A4

    let LA_A4 : Int

    LA_A5

    let LA_A5 : Int

    LA_A6

    let LA_A6 : Int

    LA_A7

    let LA_A7 : Int

    LA_FA0

    let LA_FA0 : Int

    LA_FA1

    let LA_FA1 : Int

    LA_FA2

    let LA_FA2 : Int

    LA_FA3

    let LA_FA3 : Int

    LA_FA4

    let LA_FA4 : Int

    LA_FA5

    let LA_FA5 : Int

    LA_FA6

    let LA_FA6 : Int

    LA_FA7

    let LA_FA7 : Int

    LA_FP

    let LA_FP : Int

    LA_FS0

    let LA_FS0 : Int

    LA_FS1

    let LA_FS1 : Int

    LA_FS2

    let LA_FS2 : Int

    LA_FS3

    let LA_FS3 : Int

    LA_FS4

    let LA_FS4 : Int

    LA_FS5

    let LA_FS5 : Int

    LA_FS6

    let LA_FS6 : Int

    LA_FS7

    let LA_FS7 : Int

    LA_FT0

    let LA_FT0 : Int

    LA_FT1

    let LA_FT1 : Int

    LA_FT10

    let LA_FT10 : Int

    LA_FT11

    let LA_FT11 : Int

    LA_FT12

    let LA_FT12 : Int

    LA_FT13

    let LA_FT13 : Int

    LA_FT14

    let LA_FT14 : Int

    LA_FT15

    let LA_FT15 : Int

    LA_FT2

    let LA_FT2 : Int

    LA_FT3

    let LA_FT3 : Int

    LA_FT4

    let LA_FT4 : Int

    LA_FT5

    let LA_FT5 : Int

    LA_FT6

    let LA_FT6 : Int

    LA_FT7

    let LA_FT7 : Int

    LA_FT8

    let LA_FT8 : Int

    LA_FT9

    let LA_FT9 : Int

    LA_RA

    let LA_RA : Int

    LA_S0

    let LA_S0 : Int

    LA_S1

    let LA_S1 : Int

    LA_S2

    let LA_S2 : Int

    LA_S3

    let LA_S3 : Int

    LA_S4

    let LA_S4 : Int

    LA_S5

    let LA_S5 : Int

    LA_S6

    let LA_S6 : Int

    LA_S7

    let LA_S7 : Int

    LA_S8

    let LA_S8 : Int

    LA_SP

    let LA_SP : Int

    LA_T0

    let LA_T0 : Int

    LA_T1

    let LA_T1 : Int

    LA_T2

    let LA_T2 : Int

    LA_T3

    let LA_T3 : Int

    LA_T4

    let LA_T4 : Int

    LA_T5

    let LA_T5 : Int

    LA_T6

    let LA_T6 : Int

    LA_T7

    let LA_T7 : Int

    LA_T8

    let LA_T8 : Int

    LA_TP

    let LA_TP : Int

    LA_ZERO

    let LA_ZERO : Int

    La64KmIsWide

    let La64KmIsWide : Int

    La64NCLR

    let La64NCLR : Int

    La64NFPR

    let La64NFPR : Int

    La64NFPS

    let La64NFPS : Int

    La64NGPR

    let La64NGPR : Int

    La64NGPS

    let La64NGPS : Int

    La64NRGLOB

    let La64NRGLOB : Int

    La64Tmp0

    let La64Tmp0 : Int

    NCLR

    let NCLR : Int

    NFPR

    let NFPR : Int

    NFPS

    let NFPS : Int

    NGPR

    let NGPR : Int

    NGPS

    let NGPS : Int

    NRGLOB

    let NRGLOB : Int

    R10

    let R10 : Int

    R11

    let R11 : Int

    R12

    let R12 : Int

    R13

    let R13 : Int

    R14

    let R14 : Int

    R15

    let R15 : Int

    let R8 : Int

    let R9 : Int

    let RA : Int

    RAX

    let RAX : Int

    RBP

    let RBP : Int

    RBX

    let RBX : Int

    RCX

    let RCX : Int

    RDI

    let RDI : Int

    RDX

    let RDX : Int

    RSI

    let RSI : Int

    RSP

    let RSP : Int

    RXX

    let RXX : Int

    Rv64KmIsWide

    let Rv64KmIsWide : Int

    Rv64NCLR

    let Rv64NCLR : Int

    Rv64NFPR

    let Rv64NFPR : Int

    Rv64NFPS

    let Rv64NFPS : Int

    Rv64NGPR

    let Rv64NGPR : Int

    Rv64NGPS

    let Rv64NGPS : Int

    Rv64NRGLOB

    let Rv64NRGLOB : Int

    Rv64Tmp0

    let Rv64Tmp0 : Int

    let S1 : Int

    S10

    let S10 : Int

    S11

    let S11 : Int

    let S2 : Int

    let S3 : Int

    let S4 : Int

    let S5 : Int

    let S6 : Int

    let S7 : Int

    let S8 : Int

    let S9 : Int

    let SP : Int

    let T0 : Int

    let T1 : Int

    let T2 : Int

    let T3 : Int

    let T4 : Int

    let T5 : Int

    let T6 : Int

    let TP : Int

    Tmp0

    let Tmp0 : Int

    WASM_DATA_BASE

    let WASM_DATA_BASE : Int

    WASM_MEMORY_PAGES

    let WASM_MEMORY_PAGES : Int

    WASM_STACK_ALIGN

    let WASM_STACK_ALIGN : Int

    WASM_STACK_BASE

    let WASM_STACK_BASE : Int

    WasmKmIsWide

    let WasmKmIsWide : Int

    WasmNCLR

    let WasmNCLR : Int

    WasmNFPR

    let WasmNFPR : Int

    WasmNFPS

    let WasmNFPS : Int

    WasmNGPR

    let WasmNGPR : Int

    WasmNGPS

    let WasmNGPS : Int

    WasmNRGLOB

    let WasmNRGLOB : Int

    WasmTmp0

    let WasmTmp0 : Int

    XMM0

    let XMM0 : Int

    XMM1

    let XMM1 : Int

    XMM10

    let XMM10 : Int

    XMM11

    let XMM11 : Int

    XMM12

    let XMM12 : Int

    XMM13

    let XMM13 : Int

    XMM14

    let XMM14 : Int

    XMM15

    let XMM15 : Int

    XMM2

    let XMM2 : Int

    XMM3

    let XMM3 : Int

    XMM4

    let XMM4 : Int

    XMM5

    let XMM5 : Int

    XMM6

    let XMM6 : Int

    XMM7

    let XMM7 : Int

    XMM8

    let XMM8 : Int

    XMM9

    let XMM9 : Int

    arm64_rclob

    let arm64_rclob : Array[Int]

    arm64_reg_name

    fn arm64_reg_name(reg : Int) -> String

    arm64_rglob_mask

    fn arm64_rglob_mask() -> UInt64

    arm64_rsave

    let arm64_rsave : Array[Int]

    class_to_wasm_type

    fn class_to_wasm_type(cls : Class) -> WasmType

    cmpneg

    fn cmpneg(c : Int) -> Int

    dumpts

    fn dumpts(bs : BSet, tmps : Array[Tmp]) -> String

    fp_stash_at

    fn fp_stash_at(i : Int) -> FpBits

    fp_stash_len

    fn fp_stash_len() -> Int

    fp_stash_reset

    fn fp_stash_reset() -> Unit

    gasstash

    fn gasstash(bits0 : Int64, bits1 : Int64, size : Int) -> Int

    init_amd64_target

    fn init_amd64_target() -> Unit

    init_arm64_target

    fn init_arm64_target() -> Unit

    init_la64_target

    fn init_la64_target() -> Unit

    init_rv64_target

    fn init_rv64_target() -> Unit

    la64_rclob

    let la64_rclob : Array[Int]

    la64_reg_name

    fn la64_reg_name(reg : Int) -> String

    la64_rglob_mask

    fn la64_rglob_mask() -> UInt64

    la64_rsave

    let la64_rsave : Array[Int]

    op_info

    fn op_info(o : Op) -> OpInfo

    phicls

    fn phicls(t : Int, tmps : Array[Tmp]) -> Int

    rclob

    let rclob : Array[Int]

    rglob_mask

    fn rglob_mask() -> UInt64

    rsave

    let rsave : Array[Int]

    rv64_rclob

    let rv64_rclob : Array[Int]

    rv64_reg_name

    fn rv64_reg_name(reg : Int) -> String

    rv64_rglob_mask

    fn rv64_rglob_mask() -> UInt64

    rv64_rsave

    let rv64_rsave : Array[Int]

    target_argregs

    fn target_argregs(r : Ref) -> (UInt64, Int, Int)

    target_cfg

    let target_cfg : TargetCfg

    target_retregs

    fn target_retregs(r : Ref) -> (UInt64, Int, Int)

    wasm_load_op

    fn wasm_load_op(cls : Class) -> String

    wasm_rclob

    let wasm_rclob : Array[Int]

    wasm_rglob_mask

    fn wasm_rglob_mask() -> UInt64

    wasm_rsave

    let wasm_rsave : Array[Int]

    wasm_store_op

    fn wasm_store_op(cls : Class) -> String

    wasm_type_name

    fn wasm_type_name(cls : Class) -> String