# DON'T TRY THIS TEST YET, NOT READY! - pipeline test for Assignment #1 -- Assume data mem contains: -- loc 20: 16 -- loc 21: 80 -- loc 22: 127 -- loc 23: 0 -- loc 24: 255 -- storage(i) := (ADDREG, 3, 0, 0, 0); i := i+1; --add r3,r0,r0 ; r3 = 0 storage(i) := (ADDIMM, 3, 3, 0, 20); i := i+1; --addui r3,r3,#20 ; r3 = 20 storage(i) := (ADDIMM, 4, 3, 0, 10); i := i+1; --addu r4,r3,#10 ;r4 = 30 storage(i) := (ADDREG, 10, 4, 0, 0); i := i+1; --addu r10,r4,r0 ;r10 = 30 storage(i) := (ADDREG, 11, 4, 0, 0); i := i+1; --addu r11,r4,r0 ;r11 = 30 storage(i) := (ADDREG, 1, 4, 0, 0); i := i+1; --addu r1,r4,r0 ;r1 = 30 storage(i) := (ADDREG, 12, 0, 3, 0); i := i+1; --addu r12,r0,r3 ;r12 = 20 storage(i) := (ADDREG, 13, 0, 12, 0); i := i+1; --addu r13,r0,r12 ; r13 = 20 storage(i) := (ADDREG, 14, 0, 12, 0); i := i+1; --addu r14,r0,r12 ; r14 = 20 storage(i) := (ADDREG, 2, 0, 12, 0); i := i+1; --addu r2,r0,r12 ;r2 = 20 storage(i) := (ADDREG, 7, 12, 0, 0); i := i+1; --add r7,r12,r0 ; storage(i) := (ADDIMM, 7, 0, 0, 1); i := i+1; --add r7,r0,#1 ; if fwding wrong, --r7 may end up as 0 instead of 1 -- ;; r3,r4 should now have address of "data" storage(i) := (LOAD, 5, 3, 0, 0); i := i+1; -- load r5,0(r3) ; r5 = 16, fwd of mem value storage(i) := (NOP, 0, 0, 0, 0);i := i+1; -- NOP needed for load stall - do NOT remove! storage(i) := (ADDIMM, 8, 5, 0, 48); i := i+1; -- addui r8,r5,#48 ; r8 = 64 storage(i) := (LOAD, 15, 3, 0, 0); i := i+1; -- load r15,0(r3) ; r15 = 16 storage(i) := (NOP, 0, 0, 0, 0);i := i+1; -- NOP needed for load stall - do NOT remove! storage(i) := (ADDREG, 16, 8, 15, 0); i := i+1; -- add r16,r8,r15 ; r16 = 80 storage(i) := (LOAD, 6, 3, 0, 1); i := i+1; -- load r6,1(r3) ; r6 = 80 storage(i) := (NOP, 0, 0, 0, 0);i := i+1; -- NOP needed for load stall - do NOT remove! storage(i) := (STORE, 0, 3, 6, 5); i := i+1; -- store 5(r3),r6 ; loc 25 = 80 storage(i) := (LOAD, 9, 3, 0, 5); i := i+1; -- load r9,5(r3) ; r9 = 80 storage(i) := (ADDIMM, 17, 0, 0, 33); i := i+1; -- add r17,r0,#0x21 ; r17 = 33 storage(i) := (STORE, 0, 3, 17, 6); i := i+1; -- store 6(r3),r17 ; loc 26 = 33 storage(i) := (STORE, 0, 3, 17, 7); i := i+1; -- store 7(r3),r17 ; loc 27 = 33 storage(i) := (STORE, 0, 3, 17, 8); i := i+1; -- store 8(r3),r17 ; loc 28 = 33 storage(i) := (LOAD, 18, 3, 0, 6); i := i+1; -- load r18,6(r3) ; r18 = 33 storage(i) := (LOAD, 19, 3, 0, 7); i := i+1; -- load r19,7(r3) ; r19 = 33 storage(i) := (LOAD, 22, 3, 0, 8); i := i+1; -- load r22,8(r3) ; r22 = 33 storage(i) := (STORE, 0, 3, 5, 4); i := i+1; -- sw 4(r3),r5 ; loc 24 = 16 storage(i) := (ADDREG, 20, 0, 5, 0); i := i+1; -- add r20,r0,r5 ; r20 = 16 storage(i) := (ADDREG, 21, 5, 0, 0); i := i+1; -- add r21,r5,r0 ; r21 = 16