Are there a specific set of MIPS operations which cause a bubble or noOp? Or is it just dependent on which registers will be needed for subsequent calls? Outside of predictive methods for branching, does a branch always cause two noOps?
LW R2 0(R1)
Label1: BEQ R2 R0 Label2 #not taken once then taken
LW R3 0(R2)
BEQ R3 R0 Label1 #taken
ADD R1 R3 R1
Label2 AS R1 0(R2)