|
|
R1 in the branch condition prevents the add instruction from being moved into the branch delay slot.
To make this optimization legal for (b) or (c), it must be OK to execute the sub instruction when the branch goes in the unexpected direction.
For example, if R4 were an unused temporary register when the branch goes in the unexpected direction.