program globals 0 procedure fib(1) var %0, %1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12, %13, %14, %15, %16, %17, %18, %19 entry fib37 fib37: newframe --> fib36 fib36: move %19, $ra --> fib35 fib35: move %18, $s7 --> fib34 fib34: move %17, $s6 --> fib33 fib33: move %16, $s5 --> fib32 fib32: move %15, $s4 --> fib31 fib31: move %14, $s3 --> fib30 fib30: move %13, $s2 --> fib29 fib29: move %12, $s1 --> fib28 fib28: move %11, $s0 --> fib27 fib27: move %0, $a0 --> fib26 fib26: li %1, 0 --> fib25 fib25: li %2, 0 --> fib24 fib24: li %4, 0 --> fib23 fib23: li %5, 0 --> fib22 fib22: li %6, 0 --> fib21 fib21: li %7, 0 --> fib20 fib20: li %8, 0 --> fib19 fib19: li %9, 0 --> fib18 fib18: li %10, 0 --> fib17 fib17: emit c4 --> fib16 fib16: li %9, 0 --> fib15 fib15: li %10, 2 --> fib14 fib14: slt %8, %0, %10 --> fib13 fib13: beq %8, %9 --> fib10, fib12 fib12: emit c3 --> fib11 fib11: li %3, 1 --> fib0 fib0 : j --> fib49 fib49: move $v0, %3 --> fib48 fib48: move $ra, %19 --> fib47 fib47: move $s7, %18 --> fib46 fib46: move $s6, %17 --> fib45 fib45: move $s5, %16 --> fib44 fib44: move $s4, %15 --> fib43 fib43: move $s3, %14 --> fib42 fib42: move $s2, %13 --> fib41 fib41: move $s1, %12 --> fib40 fib40: move $s0, %11 --> fib39 fib39: delframe --> fib38 fib38: jr $ra (xmits $v0) fib10: emit c2 --> fib9 fib9 : li %7, 1 --> fib8 fib8 : subu %6, %0, %7 --> fib7 fib7 : j --> fib55 fib55: move $a0, %6 --> fib54 fib54: call fib(1) --> fib53 fib53: move %1, $v0 --> fib6 fib6 : emit c1 --> fib5 fib5 : li %5, 2 --> fib4 fib4 : subu %4, %0, %5 --> fib3 fib3 : j --> fib52 fib52: move $a0, %4 --> fib51 fib51: call fib(1) --> fib50 fib50: move %2, $v0 --> fib2 fib2 : emit c0 --> fib1 fib1 : addu %3, %1, %2 --> fib0 procedure _main(0) var %0, %1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11 entry main17 main17: newframe --> main16 main16: move %11, $ra --> main15 main15: move %10, $s7 --> main14 main14: move %9, $s6 --> main13 main13: move %8, $s5 --> main12 main12: move %7, $s4 --> main11 main11: move %6, $s3 --> main10 main10: move %5, $s2 --> main9 main9 : move %4, $s1 --> main8 main8 : move %3, $s0 --> main7 main7 : li %0, 0 --> main6 main6 : li %2, 0 --> main5 main5 : emit c6 --> main4 main4 : li %2, 10 --> main3 main3 : j --> main32 main32: move $a0, %2 --> main31 main31: call fib(1) --> main30 main30: move %0, $v0 --> main2 main2 : emit c5 --> main1 main1 : move %1, %0 --> main0 main0 : j --> main29 main29: move $v0, %1 --> main28 main28: move $ra, %11 --> main27 main27: move $s7, %10 --> main26 main26: move $s6, %9 --> main25 main25: move $s5, %8 --> main24 main24: move $s4, %7 --> main23 main23: move $s3, %6 --> main22 main22: move $s2, %5 --> main21 main21: move $s1, %4 --> main20 main20: move $s0, %3 --> main19 main19: delframe --> main18 main18: jr $ra (xmits $v0)