Header menu logo F# Header menu logo Averest

AbacusInstr Type

Abacus is a typical RISC architecture; the following data type specifies however only the scalar part of the instructions, while there are also vector instructions. See also Abacus reference card. For addition, subtraction, multiplication, division there are four variants:

  • AbcOp(rd,r1,r2) means signed operation Reg[rd] := Reg[r1] op Reg[r2]
  • AbcOpU(rd,r1,r2) means unsigned operation Reg[rd] := Reg[r1] op Reg[r2]
  • AbcOpI(rd,r1,c) means signed operation Reg[rd] := Reg[r1] op c
  • AbcOpIU(rd,r1,c) means unsigned operation Reg[rd] := Reg[r1] op c
The following are logic operations
  • AbcAnd(rd,r1,r2) means bitwise Reg[rd] := Reg[r1] & Reg[r2]
  • AbcOr(rd,r1,r2) means bitwise Reg[rd] := Reg[r1] | Reg[r2]
  • AbcXor(rd,r1,r2) means bitwise Reg[rd] := Reg[r1] ^ Reg[r2]
  • AbcNeg(rd,r1) means bitwise Reg[rd] := !Reg[r1]
  • AbcShift(rd,r1,r2) means left shift of Reg[r1] by Reg[r2] bits to Reg[rd]
The following are comparison operations
  • AbcSlt(rd,r1,r2) means signed operation Reg[rd] := Reg[r1] < Reg[r2]
  • AbcSltU(rd,r1,r2) means unsigned operation Reg[rd] := Reg[r1] < Reg[r2]
  • AbcSlet(rd,r1,r2) means signed operation Reg[rd] := Reg[r1] <= Reg[r2]
  • AbcSletU(rd,r1,r2) means unsigned operation Reg[rd] := Reg[r1] <= Reg[r2]
  • AbcSeq(rd,r1,r2) means equality Reg[rd] := Reg[r1] == Reg[r2]
  • AbcSne(rd,r1,r2) means negated equality Reg[rd] := Reg[r1] != Reg[r2]
The following are memory operations
  • AbcMove(rd,c) means Reg[rd] := bv2int(c)
  • AbcOvf(rd) means Reg[rd] := ovflw
  • AbcLoad(rd,r1,r2) means Reg[rd] := Mem[Reg[r1] + Reg[r2]]
  • AbcLoadI(rd,r1,c) means Reg[rd] := Mem[Reg[r1] + bv2nat(c)]
  • AbcStore(rd,r1,r2) means Mem[Reg[r1] + Reg[r2]] := Reg[rd]
  • AbcStoreI(rd,r1,c) means Mem[Reg[r1] + bv2nat(c)] := Reg[rd]
The following are control flow operations
  • AbcBez(rd,c) means if(Reg[rd]==0) pc := pc + bv2int(c)
  • AbcBnz(rd,c) means if(Reg[rd]!=0) pc := pc + bv2int(c)
  • AbcJmp(rd) means pc := pc + Reg[rd]
The following are operations for thread control where additionally a load-link register is modified and checked:
  • AbcLdLink(rd,r1,c) means Reg[rd] := Mem[Reg[r1] + bv2nat(c)]
  • AbcStCond(rd,r1,r2) means Mem[Reg[r1] + Reg[r2]] := Reg[rd]
  • AbcSync waits until the store buffer is emptied

Union cases

Union case Description

AbcAdd(regindex, regindex, regindex)

Full Usage: AbcAdd(regindex, regindex, regindex)

Parameters:
Item1 : regindex
Item2 : regindex
Item3 : regindex

AbcAddI(regindex, regindex, Iconst)

Full Usage: AbcAddI(regindex, regindex, Iconst)

Parameters:
Item1 : regindex
Item2 : regindex
Item3 : Iconst

AbcAddIU(regindex, regindex, Uconst)

Full Usage: AbcAddIU(regindex, regindex, Uconst)

Parameters:
Item1 : regindex
Item2 : regindex
Item3 : Uconst

AbcAddU(regindex, regindex, regindex)

Full Usage: AbcAddU(regindex, regindex, regindex)

Parameters:
Item1 : regindex
Item2 : regindex
Item3 : regindex

AbcAnd(regindex, regindex, regindex)

Full Usage: AbcAnd(regindex, regindex, regindex)

Parameters:
Item1 : regindex
Item2 : regindex
Item3 : regindex

AbcBez(regindex, Iconst)

Full Usage: AbcBez(regindex, Iconst)

Parameters:
Item1 : regindex
Item2 : Iconst

AbcBnz(regindex, Iconst)

Full Usage: AbcBnz(regindex, Iconst)

Parameters:
Item1 : regindex
Item2 : Iconst

AbcDiv(regindex, regindex, regindex)

Full Usage: AbcDiv(regindex, regindex, regindex)

Parameters:
Item1 : regindex
Item2 : regindex
Item3 : regindex

AbcDivI(regindex, regindex, Iconst)

Full Usage: AbcDivI(regindex, regindex, Iconst)

Parameters:
Item1 : regindex
Item2 : regindex
Item3 : Iconst

AbcDivIU(regindex, regindex, Uconst)

Full Usage: AbcDivIU(regindex, regindex, Uconst)

Parameters:
Item1 : regindex
Item2 : regindex
Item3 : Uconst

AbcDivU(regindex, regindex, regindex)

Full Usage: AbcDivU(regindex, regindex, regindex)

Parameters:
Item1 : regindex
Item2 : regindex
Item3 : regindex

AbcJ Iconst

Full Usage: AbcJ Iconst

Parameters:
Item : Iconst

AbcJmp regindex

Full Usage: AbcJmp regindex

Parameters:
Item : regindex

AbcLdLink(regindex, regindex, regindex)

Full Usage: AbcLdLink(regindex, regindex, regindex)

Parameters:
Item1 : regindex
Item2 : regindex
Item3 : regindex

AbcLoad(regindex, regindex, regindex)

Full Usage: AbcLoad(regindex, regindex, regindex)

Parameters:
Item1 : regindex
Item2 : regindex
Item3 : regindex

AbcLoadI(regindex, regindex, Uconst)

Full Usage: AbcLoadI(regindex, regindex, Uconst)

Parameters:
Item1 : regindex
Item2 : regindex
Item3 : Uconst

AbcMove(regindex, Iconst)

Full Usage: AbcMove(regindex, Iconst)

Parameters:
Item1 : regindex
Item2 : Iconst

AbcMul(regindex, regindex, regindex)

Full Usage: AbcMul(regindex, regindex, regindex)

Parameters:
Item1 : regindex
Item2 : regindex
Item3 : regindex

AbcMulI(regindex, regindex, Iconst)

Full Usage: AbcMulI(regindex, regindex, Iconst)

Parameters:
Item1 : regindex
Item2 : regindex
Item3 : Iconst

AbcMulIU(regindex, regindex, Uconst)

Full Usage: AbcMulIU(regindex, regindex, Uconst)

Parameters:
Item1 : regindex
Item2 : regindex
Item3 : Uconst

AbcMulU(regindex, regindex, regindex)

Full Usage: AbcMulU(regindex, regindex, regindex)

Parameters:
Item1 : regindex
Item2 : regindex
Item3 : regindex

AbcNeg(regindex, regindex)

Full Usage: AbcNeg(regindex, regindex)

Parameters:
Item1 : regindex
Item2 : regindex

AbcOr(regindex, regindex, regindex)

Full Usage: AbcOr(regindex, regindex, regindex)

Parameters:
Item1 : regindex
Item2 : regindex
Item3 : regindex

AbcOvf regindex

Full Usage: AbcOvf regindex

Parameters:
Item : regindex

AbcSeq(regindex, regindex, regindex)

Full Usage: AbcSeq(regindex, regindex, regindex)

Parameters:
Item1 : regindex
Item2 : regindex
Item3 : regindex

AbcShift(regindex, regindex, regindex)

Full Usage: AbcShift(regindex, regindex, regindex)

Parameters:
Item1 : regindex
Item2 : regindex
Item3 : regindex

AbcSle(regindex, regindex, regindex)

Full Usage: AbcSle(regindex, regindex, regindex)

Parameters:
Item1 : regindex
Item2 : regindex
Item3 : regindex

AbcSleU(regindex, regindex, regindex)

Full Usage: AbcSleU(regindex, regindex, regindex)

Parameters:
Item1 : regindex
Item2 : regindex
Item3 : regindex

AbcSlt(regindex, regindex, regindex)

Full Usage: AbcSlt(regindex, regindex, regindex)

Parameters:
Item1 : regindex
Item2 : regindex
Item3 : regindex

AbcSltU(regindex, regindex, regindex)

Full Usage: AbcSltU(regindex, regindex, regindex)

Parameters:
Item1 : regindex
Item2 : regindex
Item3 : regindex

AbcSne(regindex, regindex, regindex)

Full Usage: AbcSne(regindex, regindex, regindex)

Parameters:
Item1 : regindex
Item2 : regindex
Item3 : regindex

AbcStCond(regindex, regindex, regindex)

Full Usage: AbcStCond(regindex, regindex, regindex)

Parameters:
Item1 : regindex
Item2 : regindex
Item3 : regindex

AbcStore(regindex, regindex, regindex)

Full Usage: AbcStore(regindex, regindex, regindex)

Parameters:
Item1 : regindex
Item2 : regindex
Item3 : regindex

AbcStoreI(regindex, regindex, Uconst)

Full Usage: AbcStoreI(regindex, regindex, Uconst)

Parameters:
Item1 : regindex
Item2 : regindex
Item3 : Uconst

AbcSub(regindex, regindex, regindex)

Full Usage: AbcSub(regindex, regindex, regindex)

Parameters:
Item1 : regindex
Item2 : regindex
Item3 : regindex

AbcSubI(regindex, regindex, Iconst)

Full Usage: AbcSubI(regindex, regindex, Iconst)

Parameters:
Item1 : regindex
Item2 : regindex
Item3 : Iconst

AbcSubIU(regindex, regindex, Uconst)

Full Usage: AbcSubIU(regindex, regindex, Uconst)

Parameters:
Item1 : regindex
Item2 : regindex
Item3 : Uconst

AbcSubU(regindex, regindex, regindex)

Full Usage: AbcSubU(regindex, regindex, regindex)

Parameters:
Item1 : regindex
Item2 : regindex
Item3 : regindex

AbcSync

Full Usage: AbcSync

AbcXor(regindex, regindex, regindex)

Full Usage: AbcXor(regindex, regindex, regindex)

Parameters:
Item1 : regindex
Item2 : regindex
Item3 : regindex

Instance members

Instance member Description

this.IsAbcAdd

Full Usage: this.IsAbcAdd

Returns: bool
Returns: bool

this.IsAbcAddI

Full Usage: this.IsAbcAddI

Returns: bool
Returns: bool

this.IsAbcAddIU

Full Usage: this.IsAbcAddIU

Returns: bool
Returns: bool

this.IsAbcAddU

Full Usage: this.IsAbcAddU

Returns: bool
Returns: bool

this.IsAbcAnd

Full Usage: this.IsAbcAnd

Returns: bool
Returns: bool

this.IsAbcBez

Full Usage: this.IsAbcBez

Returns: bool
Returns: bool

this.IsAbcBnz

Full Usage: this.IsAbcBnz

Returns: bool
Returns: bool

this.IsAbcDiv

Full Usage: this.IsAbcDiv

Returns: bool
Returns: bool

this.IsAbcDivI

Full Usage: this.IsAbcDivI

Returns: bool
Returns: bool

this.IsAbcDivIU

Full Usage: this.IsAbcDivIU

Returns: bool
Returns: bool

this.IsAbcDivU

Full Usage: this.IsAbcDivU

Returns: bool
Returns: bool

this.IsAbcJ

Full Usage: this.IsAbcJ

Returns: bool
Returns: bool

this.IsAbcJmp

Full Usage: this.IsAbcJmp

Returns: bool
Returns: bool

this.IsAbcLdLink

Full Usage: this.IsAbcLdLink

Returns: bool
Returns: bool

this.IsAbcLoad

Full Usage: this.IsAbcLoad

Returns: bool
Returns: bool

this.IsAbcLoadI

Full Usage: this.IsAbcLoadI

Returns: bool
Returns: bool

this.IsAbcMove

Full Usage: this.IsAbcMove

Returns: bool
Returns: bool

this.IsAbcMul

Full Usage: this.IsAbcMul

Returns: bool
Returns: bool

this.IsAbcMulI

Full Usage: this.IsAbcMulI

Returns: bool
Returns: bool

this.IsAbcMulIU

Full Usage: this.IsAbcMulIU

Returns: bool
Returns: bool

this.IsAbcMulU

Full Usage: this.IsAbcMulU

Returns: bool
Returns: bool

this.IsAbcNeg

Full Usage: this.IsAbcNeg

Returns: bool
Returns: bool

this.IsAbcOr

Full Usage: this.IsAbcOr

Returns: bool
Returns: bool

this.IsAbcOvf

Full Usage: this.IsAbcOvf

Returns: bool
Returns: bool

this.IsAbcSeq

Full Usage: this.IsAbcSeq

Returns: bool
Returns: bool

this.IsAbcShift

Full Usage: this.IsAbcShift

Returns: bool
Returns: bool

this.IsAbcSle

Full Usage: this.IsAbcSle

Returns: bool
Returns: bool

this.IsAbcSleU

Full Usage: this.IsAbcSleU

Returns: bool
Returns: bool

this.IsAbcSlt

Full Usage: this.IsAbcSlt

Returns: bool
Returns: bool

this.IsAbcSltU

Full Usage: this.IsAbcSltU

Returns: bool
Returns: bool

this.IsAbcSne

Full Usage: this.IsAbcSne

Returns: bool
Returns: bool

this.IsAbcStCond

Full Usage: this.IsAbcStCond

Returns: bool
Returns: bool

this.IsAbcStore

Full Usage: this.IsAbcStore

Returns: bool
Returns: bool

this.IsAbcStoreI

Full Usage: this.IsAbcStoreI

Returns: bool
Returns: bool

this.IsAbcSub

Full Usage: this.IsAbcSub

Returns: bool
Returns: bool

this.IsAbcSubI

Full Usage: this.IsAbcSubI

Returns: bool
Returns: bool

this.IsAbcSubIU

Full Usage: this.IsAbcSubIU

Returns: bool
Returns: bool

this.IsAbcSubU

Full Usage: this.IsAbcSubU

Returns: bool
Returns: bool

this.IsAbcSync

Full Usage: this.IsAbcSync

Returns: bool
Returns: bool

this.IsAbcXor

Full Usage: this.IsAbcXor

Returns: bool
Returns: bool

Type something to start searching.