DLX ISA ref

opinstnotes
0x00 000000i-format instruction
0x01 000001floating-point instruction (ignore)
jump
0x02 000010j labelabsolute addressing
0x03 000011jal label$31 <- PC
branch
0x04 000100beqz $r1, labelPC+4-relative addressing
0x05 000101bnez $r1, label
0x06 000110bfptfloating-point, not implemented
0x07 000111bfpf
ALU immediate
0x08 001000addi $rd, $rs, immed
0x09 001001addui
0x0a 001010subi
0x0b 001011subui
0x0c 001100andi $rd, $rs, immed$rd = $rs & immed
0x0d 001101ori
0x0e 001110xori
0x0f 001111lhi $rd, immed$rd[31:16] = immed[15:0]
Exceptions
0x10 010000rfenot yet
0x11 010001trapnot yet
jump register
0x12 010010jr $31
0x13 010011jalr $29$31 <- PC
ALU: shift immediate
0x14 010100slli
0x15 010110srli
0x16 010111srai
Set-on-condition immediate
0x18 011000seqi $rd, $r1, $r2$rd <- 1 if $r1==$r2
0x19 011001snei
0x1a 011010slti
0x1b 011011sgti
0x1c 011100slei
0x1d 011101sgei
load/store (aligned only)
0x23 100011lw $reg, offset($rbase)$reg <- Mem[$rbase+offset]
0x2b 101011sw $reg, offset($rbase)Mem[$rbase+offset] <- $reg
Set-on-condition immediate unsigned
0x30 110000sequi
0x31 110001sneui
0x32 110010sltui
0x33 110011sgtui
0x34 110100sleui
0x35 110101sgeui

Function field for r-format instructions

opinstnotes
0x00 000000nop
ALU: shift
0x04 000100sll
0x06 000110srl
0x07 000111sra
Set-on-condition unsigned
0x10 010000sequ
0x11 010001sneu
0x12 010010sltu
0x13 010011sgtu
0x14 010100sleu
0x15 010101sgeu
ALU
0x20 100000add $rd, $r1, $r2
0x21 100001addu
0x22 100010sub
0x23 100011subu
0x24 100100and
0x25 100101or
0x26 100110xor
Set-on-condition
0x28 101000seq $rd, $r1, $r2
0x29 101001sne
0x2a 101010slt
0x2b 101011sgt
0x2c 101100sle
0x2d 101101sge
Others
Not going to implement mov instructions or FP instructions.