Absolute
abs rdest, rsrc
##  addu rdest, $0, rsrc
    bgez rsrc 8
    sub rdest, $0, rsrc
    
Divide w/ overflow
div rdest, rsrc1, src2
##  bne src2, $0, 8
    break $0
    div rsrc1, src2
    mflo rdest
    
Divide w/o overflow
divu rdest, rsrc1, src2
##  bne src2, $0, 8
    break $0
    divu rsrc1, src2
    mflo rdest
    
Multiply (No Overflow)
mul rdest, rsrc1, src2
##  mult rsrc1, rsrc2
    mflo rdest

Multiply (With Overflow) 
mulo, rdest, rsrc1, rsc2
##  mult src1, src2
    mfhi $1
    mflo rdest
    sra rdest, rdest, 31
    beq $1, src1, 8
    break $0
    mflo rdest

Unsigned multiply w/ overflow
mulou rdest, rsrc1, src2
##  multu rsrc1, src2
    mfhi $1
    beq $1, $0, 8
    break $0
    mflo rdest
    
Negate value w/ overflow
neg rdest, rsrc
##  sub rdest, $0, rsrc

Negate value w/o overflow
negu rdest, rsrc
##  subu rdest, $0, rsrc

Not
not rdest, rsrc
##  nor rdest, rsrc, $0

Remainder
rem rdest, rsrc1, rsrc2
##  bne rsrc2, $0, 8
    break $0
    div rsrc1, rsrc2
    mfhi rdest
    
Unsigned Remainder
remu rdest, rsrc1, rsrc2
##  bne rsrc2, $0, 8
    break $0
    divu rsrc1, rsrc2
    mfhi rdest
    
Rotate left
rol rdest, rsrc1, rsrc2
##  subu $1, $0, rsrc2
    srlv $1, rsrc1, $1
    sllv rdest, rsrc1, rsrc2
    or rdest, rdest, $1
    
Rotate right
ror rdest, rsrc1, rsrc2
##  subu $1, $0, rsrc2
    sllv $1, rsrc1, $1
    srlv rdest, rsrc1, rsrc2
    or rdest, rdest, $1
    
Load Immediate
li rdest, imm
##  ori rdest, $0, imm

Set equal
seq rdest, rsrc1, rsrc2
##  beq rsrc2, rsrc1, 12
    ori rdest, $0, 8
    beq $0, $0, 8
    ori rdest, $0, 1
    
Set greater than equal
sge rdest, rsrc1, rsrc2
##  bne rsrc2, rsrc1, 12
    ori rdest, $0, 1
    beq $0, $0, 8
    slt rdest, rsrc2, rsrc1
    
Set greater than equal unsigned
sgeu rdest, rsrc1, rsrc2
##  bne rsrc2, rsrc1, 12
    ori rdest, $0, 1
    beq $0, $0, 8
    sltu rdest, rsrc2, rsrc1

Set greater than
sgt rdest, rsrc1, rsrc2
##  slt rdest, rsrc2, rsrc1

Set greater than unsigned
sgtu rdest, rsrc1, rsrc2
##  sltu rdest, rsrc2, rsrc1

Set less than equal
sle rdest, rsrc1, rsrc2
##  bne rsrc2, rsrc1, 12
    ori rdest, $0, 1
    beq $0, $0, 8
    slt rdest, rsrc1, rsrc2

Set less than equal
sleu rdest, rsrc1, rsrc2
##  bne rsrc2, rsrc1, 12
    ori rdest, $0, 1
    beq $0, $0, 8
    sltu rdest, rsrc1, rsrc2

Set not equal
sne rdest, rsrc1, rsrc2
##  beq rsrc2, rsrc1, 12
    ori rdest, $0, 1
    beq $0, $0, 8
    ori rdest, $0, 0
    
Branch
b label 
##  bgez $0, label
####  beq $0, label

Branch on equal zero
beqz rsrc, label
##  beq rsrc, $0, label

Branch on greater than equal
bge rsrc1, rsrc2, label
##  slt $1, rsrc1, rsrc2
    beq $1, $0, label
    
Branch on greater than equal unsigned
bgeu rsrc1, rsrc2, label
##  sltu $1, rsrc1, rsrc2
    beq $1, $0, label
    
Branch on greater than
bgt rsrc1, src2, label
##  slt $1, src2, rsrc1
    bne $1, $0, label
    
Branch on greater than unsigned
bgtu rsrc1,  src2, label
##  sltu $1, src2, rsrc1
    bne $1, $0, label
    
Branch on less than equal
ble rsrc1, src2, label
##  slt $1, src2, rsrc1
    beq $1, $0, label

Branch on less than equal unsigned
bleu rsrc1, src2, label
##  sltu $1, src2, rsrc1
    beq $1, $0, label

Branch on less than
ble rsrc1, src2, label
##  slt $1, rsrc1, src2
    bne $1, $0, label
    
Branch on less than unsigned
bleu rsrc1, src2, label
##  sltu $1, rsrc1, src2
    bne $1, $0, label

Branch on not equal zero
bnez rsrc, label
##  bne rsrc, $0, label

Load Address
la rdest, address
##  ori rdest, $0, addr

Unaligned load halfword
ulh rdest, address
##  lb rdest, address+1($0)
    lbu $1, 1234($0)
    sll rdest, rdest, 8
    or rdest, rdest, $1
    
Unaligned load halfword unsigned
ulhu rdest, address
##  lbu rdest, address+1($0)
    lbu $1, 1234($0)
    sll rdest, rdest, 8
    or rdest, rdest, $1

Unalligned load word
ulw rdest, address
##  lwl rdest, address+3($0)
    lwr rdest, address($0)
    
Store doubleword
sd rsrc, address
##  sw rsrc, address($0)
    sw rsrc+1, address+4($0)
    
Unaligned store halfword
ush rsrc, address
##  sb rsrc, address($0)
    srl $1, rsrc, 8
    sb $1, address+1($0)
    
Unaligned store word
usw rsrc, address
##  swl rsrc, address+3($0)
    swr rsrc, address($0)
    
Move
move rdest, rsrc
##  addu rdest, $0, rsrc

===================================
Non-Pseudoinstructions that were axed
bgez
bgezal
bgtz
blez
bltzal
bltz
lwl
lwr