Istructions understood by Xmas

These are all the istructions understood by the last Xmas version:

Opcode Syntax Description
addadd $1 $2 $3$1 = $2 + $3
addiaddi $1 $2 n$1 = $2 + n
andand $1 $2 $3$1 = $2 & $3
andiandi $1 $2 n$1 = $2 & n
halthaltstop the executor (metaistruction)
beqbeq $1 $2 nPC = PC + n if $1 == $2
bnebne $1 $2 nPC = PC + n if $1 != $2
divdiv $1 $2hi = $1 / $2, lo = remainder of $1 / $2
luilui $1 nwrite n into high 16 bit of $1
lwlw $1 $2 nload in $1 from address $2+n
jj tProgram Counter = t
jrjr $1Program Counter = $1
mfhimfhi $1copy the value of hi in $1
mflomflo $1copy the value of lo in $1
mthimthi $1copy the value of $1 in hi
mtlomtlo $1copy the value of $1 in lo
multmult $1 $2hi = $1 * $2 (only low 32 bits of multiplication)
nopnopdo nothing
oror $1 $2 $3$1 = $2 | $3
oriori $1 $2 n$1 = $2 | n
sllsll $1 $2 k$1 = $2 << k
sllvsllv $1 $2 $3$1 = $2 << $3
sltslt $1 $2 $3if $2 < $3 then $1 = 1 else $1 = 0
sltislti $1 $2 nif $2<n then $1=1 else $1=0
srlsrl $1 $2 k$1 = $2 >> k
srlvsrlv $1 $2 $3$1 = $2 >> $3
subsub $1 $2 $3<$1 = $2 - $3
swsw $1 $2 nstore $1 at address $2+n
xorxor $1 $2 $3$1 = $2 ^ $3
xorixori $1 $2 n$1 = $2 ^ n

$1,$2,...,hi,lo: VCPU registers
PC: program counter
n: 16 bit number
t: 26 bit unsigned number
k: up to bit of a word, example: word=32 bit then 0<k<32

[UP]Xmas DOCUMENTATION PAGE 21:19:11
Tue 05-Dec-2000
http://punto.dov.it/~paolo/Xmas/docs/all_istructions_available.php3