Я пытаюсь переопределить программу mips, используя упрощение, чтобы использовать наименьшее количество временных регистров.
#Input:
# a, b, c, d
#Register Association
# s0 = a
# s1 = b
# s3 = c
# s4 = d
###########################################
#Output:
# $t0 = a + a
# $t0 = a + a
# $t1 = b + c
# $t2 = a + a
# $t1 = b + c
# t3 = d - a
# t5 = a - b
# t6 = a - b - d - a
# ВЫЧИСЛЕНИЕ s0, s1, s2
move $t0, $s0
add $t0, $t0, $t0 #t0 = s0 + t0 = 2a
add $t0, $t0, $t0 #t0 = s0 + t0 = 4a
add $t1, $s1, $s3 #t1 = s1 + s3 = b + c
add $t2, $s0, $s0 #t2 = s0 + s0 = 2a
add $t1, $t1, $t2 #t1 = t1 + t2 = b +c + 2a
sub $t3, $s4, $s1 #t3 = s4 + s1 = d - b
sub $t5, $t0, $t1 #t5 = t0 + t1 = 4a - b + c + 2a
sub $t6, $t5, $t3 #t6 = t5 + t3 = (4a - b + c + 2a) - (d - b)
move $s0, $t6