# This one will initialize register $10 to f and then goes from 1-8 filling with "f" and $9 gets 1e. Should finish in under 100 cycles and has an infinite loop at the end. sll $0, $0, 0 sll $0, $0, 0 sll $0, $0, 0 sll $0, $0, 0 or $1, $0, $0 # Ensure 0 in $1 or $2, $0, $0 # Ensure 0 in $2 or $3, $0, $0 # Ensure 0 in $3 or $4, $0, $0 # Ensure 0 in $4 or $5, $0, $0 # Ensure 0 in $5 or $6, $0, $0 # Ensure 0 in $6 or $7, $0, $0 # Ensure 0 in $7 or $8, $0, $0 # Ensure 0 in $8 or $9, $0, $0 # Ensure 0 in $9 ori $10, $0, 15 sll $0, $0, 0 sll $0, $0, 0 sll $0, $0, 0 addiu $1, $0, 15 bne $1, $10, bad # Test forwarding to branch. sll $0, $0, 0 sll $0, $0, 0 sll $0, $0, 0 addiu $2, $0, 15 sll $0, $0, 0 bne $2, $10, bad sll $0, $0, 0 sll $0, $0, 0 sll $0, $0, 0 addiu $3, $0, 15 sll $0, $0, 0 sll $0, $0, 0 bne $3, $10, bad sll $0, $0, 0 addiu $4, $0, 15 bne $10, $4, bad # Test forwarding to branch. sll $0, $0, 0 sll $0, $0, 0 sll $0, $0, 0 addiu $5, $0, 15 sll $0, $0, 0 bne $10, $5, bad sll $0, $0, 0 sll $0, $0, 0 sll $0, $0, 0 addiu $6, $0, 15 sll $0, $0, 0 sll $0, $0, 0 bne $10, $6, bad sll $0, $0, 0 # Test branch delay sll $0, $0, 0 sll $0, $0, 0 bne $1, $0, test1 addiu $7, $0, 15 sll $0, $0, 0 sll $0, $0, 0 sll $0, $0, 0 addiu $7, $0, 10 sll $0, $0, 0 sll $0, $0, 0 sll $0, $0, 0 # Test not affecting instruction after delay slot test1: addiu $8, $0, 15 sll $0, $0, 0 sll $0, $0, 0 sll $0, $0, 0 bne $1, $0, test2 sll $0, $0, 0 addiu $8, $0, 10 sll $0, $0, 0 sll $0, $0, 0 sll $0, $0, 0 # Test not forwarding from branch. test2: bne $0, $2, test3 addu $9, $2, $2 sll $0, $0, 0 sll $0, $0, 0 sll $0, $0, 0 test3: beq $0, $0, test3 sll $0, $0, 0 bad: or $1, $0, $0 sll $0, $0, $0 sll $0, $0, $0 sll $0, $0, $0 sll $0, $0, $0 loop: beq $0, $0, loop sll $0, $0, 0