add $t1, $t2, $t3 # $t1 = $t2 + $t3 # rd = rs + rt |
addi $10, $8, 9 # $10 = $8 + 9 # rt = rs + imm16 |
The figure shows the datapath by combining R-type datapath and I-type ALU datapath. It includes the following two multiplexors: |
RW
as either rt
(I-type) or rd
(R-type).
rt
(R-type) data on BusB
or the extended immediate (I-type).
ALUCtrl
is derived from either the op
(I-type) or funct
(R-type) field.
RegWrite
enables the writing of the ALU result
.
ExtOp
controls the extension of the 16-bit immediate.
RegDst
selects the register destination as either rt
(I-type) or rd
(R-type).
ALUSrc
selects the second ALU source as BusB
or extended immediate.