1. The problem statement, all variables and given/known data Here's the datapath: So this seems like a pretty common question but I can't seem to find any answers on how to extend the datapath to implement SLL and SRL. 3. The attempt at a solution This is how I would think to do it but I'm not entirely sure: It would need another mux right next to Read data 1 next to the register file. This mux would take Read data 1 (rs) and Read data 2 (rt) as inputs. It would select Read data 1 if we're not doing a shift operation, and it would select rt if we ARE doing a shift operation (since sll and srl use rt, not rs). This would then be fed into the ALU. Next, we would need to branch Instruction[10:6] (the shift amount) off of Instruction[15:0], and Instruction[10:6] would then be fed into the other port of the ALU. Is this correct thinking?