-- part3a.asm lw $1,w2($0) -- Icache stall lw $2,w3($0) add $3,$1,$2 -- pipeline stall sub $4,$1,$2 sll $5,$1,15 -- Icache stall srl $6,$2,16 cmpl $7,$3 sw $1,w4($0) addi $8,w1($5) -- Icache stall lw $15,w1($0) lw $16,w2($0) add $17,$15,$16 -- $16 forwarded, stall add $18,$17,$17 -- $17 forwarded on both beq $17,$18,lab1 -- one stall, no br lw $9,w5($0) j lab1 lw $1,w3($0) -- branch slot, always lw $12,w1 -- not executed lw $13,w1 -- not executed lab1: beq $2,$1,lab2 -- forward, does branch lw $11,w2($0) -- always execute lw $13,w2 -- not executed lw $14,w2 -- not executed lab2: lw $10,w6($0) j lab2 lw $23,w5 -- run long enough to load lw $22,w4 -- not executed nop w1: word 0x11111111 w2: word 0x22222222 w3: word 0x33333333 w4: word 0x44444444 w5: word 0x55555555 w6: word 0x66666666 end