### compiled by Neal Wagner on
#     Fri Dec 12 12:35:28 2014
main:   move    $s7, $ra
        la      $s1, M # data addr
# Print your name
        li      $v0, 4
        la      $a0, Name
        syscall
### Compiled code starts here
# Read M[22]
        li      $v0, 7
        syscall
        s.d     $f0, 176($s1)
# M[36] = M[22] - M[1]
        l.d     $f2, 176($s1)
        l.d     $f4, 8($s1)
        sub.d   $f6, $f2, $f4
        s.d     $f6, 288($s1)
# M[18] = M[36]
        l.d     $f2, 288($s1)
        s.d     $f2, 144($s1)
# Read M[23]
        li      $v0, 7
        syscall
        s.d     $f0, 184($s1)
WhileStart0:
        l.d     $f2, 176($s1)
        l.d     $f4, 0($s1)
        c.eq.d  $f2, $f4
        bc1t    WhileEnd0
# WhileBody0
# Output M[22]
        li      $v0, 3
        l.d     $f12, 176($s1)
        syscall
# M[37] = M[22] - M[1]
        l.d     $f2, 176($s1)
        l.d     $f4, 8($s1)
        sub.d   $f6, $f2, $f4
        s.d     $f6, 296($s1)
# M[22] = M[37]
        l.d     $f2, 296($s1)
        s.d     $f2, 176($s1)
        j       WhileStart0
WhileEnd0:
# Output NewL
        li      $v0, 4
        la      $a0, NewL
        syscall
# M[38] = M[2] * M[5]
        l.d     $f2, 16($s1)
        l.d     $f4, 40($s1)
        mul.d   $f6, $f2, $f4
        s.d     $f6, 304($s1)
# M[33] = M[38]
        l.d     $f2, 304($s1)
        s.d     $f2, 264($s1)
# M[10] = M[33]
        l.d     $f2, 264($s1)
        s.d     $f2, 80($s1)
WhileStart1:
        l.d     $f2, 144($s1)
        l.d     $f4, 0($s1)
        c.eq.d  $f2, $f4
        bc1t    WhileEnd1
# WhileBody1
### IfThenElseStart0:
# M[39] = M[23] @ M[10]
        l.d     $f2, 184($s1)
        l.d     $f4, 80($s1)
        div.d      $f6, $f2, $f4
        trunc.w.d  $f6, $f6
        cvt.d.w    $f6, $f6
        s.d     $f6, 312($s1)
        l.d     $f2, 312($s1)
        l.d     $f4, 0($s1)
        c.eq.d  $f2, $f4
        bc1t    ThenEnd0
# ThenPart0
# M[13] = M[13]
        l.d     $f2, 104($s1)
        s.d     $f2, 104($s1)
        j       EndIf0
ThenEnd0:
# Output Blank
        li      $v0, 4
        la      $a0, Blank
        syscall
EndIf0:
# M[40] = M[10] * M[33]
        l.d     $f2, 80($s1)
        l.d     $f4, 264($s1)
        mul.d   $f6, $f2, $f4
        s.d     $f6, 320($s1)
# M[10] = M[40]
        l.d     $f2, 320($s1)
        s.d     $f2, 80($s1)
# M[41] = M[18] - M[1]
        l.d     $f2, 144($s1)
        l.d     $f4, 8($s1)
        sub.d   $f6, $f2, $f4
        s.d     $f6, 328($s1)
# M[18] = M[41]
        l.d     $f2, 328($s1)
        s.d     $f2, 144($s1)
        j       WhileStart1
WhileEnd1:
# Output M[23]
        li      $v0, 3
        l.d     $f12, 184($s1)
        syscall
# Output NewL
        li      $v0, 4
        la      $a0, NewL
        syscall
# Stuff at end
        move    $ra, $s7
        jr      $ra  # ret to sys
# data declarations
        .data
        .align  3
M:      .double 0.,1.,2.,3.,4.,5.
        .double 6.,7.,8.,9. # cons
        .space  208  # a to z
        .space  1000 # 125 temps
Blank:  .asciiz " "
NewL:   .asciiz "\n"
Tab:    .asciiz "\t"
Name:   .asciiz "Executed by Neal Wagner\n"
### tiny source program:
# # right_justify.t: right justify within a given width
# > m;
# i = m - 1;
# > n;
# { m ? < m; m = m - 1; }
# 
# < N;
# x = 2*5;
# a = x;
# { i ?
#    [ n@a ? d = d; : < B; ]
#    a = a*x;
#    i = i - 1;
# }
# < n; < N; $/pre>