diff --git a/seminaries/qtrvsim/branchpred-1/branchpred-1.S b/seminaries/qtrvsim/branchpred-1/branchpred-1.S new file mode 100644 index 0000000000000000000000000000000000000000..3fa2ff99d9d966063b70f383987880cd1b18bfc6 --- /dev/null +++ b/seminaries/qtrvsim/branchpred-1/branchpred-1.S @@ -0,0 +1,19 @@ +# i = s0, j = s1, c = s2, t0 = outer loop limits, t1 = inner loop limit, t3 - auxiliary variable + + addi s1, zero, 0 # c = 0; + addi t0, zero, 4 # t0 = 500; + addi t1, zero, 5 # t1 = 2 + + addi s0, zero, 0 # i = 0; +L1: + addi s1, zero, 0 # j = 0; +L2: + addi s2, s2, 1 # c++; + + addi s1, s1, 1 # j++; + slt t3, s1, t1 # t3 = (s1 < t1) ? 1 : 0; + bne t3, zero, L2 + addi s0, s0, 1 # i++; + slt t3, s0, t0 # t3 = (s0 < t0) ? 1 : 0; + bne t3, zero, L1 + ebreak