### compiled by Neal Wagner on
#     Fri Dec 12 10:06:01 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[23]
        li      $v0, 7
        syscall
        s.d     $f0, 184($s1)
# M[25] = M[2]
        l.d     $f2, 16($s1)
        s.d     $f2, 200($s1)
# M[11] = M[0]
        l.d     $f2, 0($s1)
        s.d     $f2, 88($s1)
# M[18] = M[1]
        l.d     $f2, 8($s1)
        s.d     $f2, 144($s1)
WhileStart0:
# M[36] = M[23] - M[18]
        l.d     $f2, 184($s1)
        l.d     $f4, 144($s1)
        sub.d   $f6, $f2, $f4
        s.d     $f6, 288($s1)
        l.d     $f2, 288($s1)
        l.d     $f4, 0($s1)
        c.eq.d  $f2, $f4
        bc1t    WhileEnd0
# WhileBody0
# M[20] = M[1]
        l.d     $f2, 8($s1)
        s.d     $f2, 160($s1)
# M[37] = M[2] + M[11]
        l.d     $f2, 16($s1)
        l.d     $f4, 88($s1)
        add.d   $f6, $f2, $f4
        s.d     $f6, 296($s1)
# M[33] = M[37]
        l.d     $f2, 296($s1)
        s.d     $f2, 264($s1)
# M[34] = M[33]
        l.d     $f2, 264($s1)
        s.d     $f2, 272($s1)
WhileStart1:
# 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[39] = M[20] - M[38]
        l.d     $f2, 160($s1)
        l.d     $f4, 304($s1)
        sub.d   $f6, $f2, $f4
        s.d     $f6, 312($s1)
        l.d     $f2, 312($s1)
        l.d     $f4, 0($s1)
        c.eq.d  $f2, $f4
        bc1t    WhileEnd1
# WhileBody1
# M[40] = M[2] * M[34]
        l.d     $f2, 16($s1)
        l.d     $f4, 272($s1)
        mul.d   $f6, $f2, $f4
        s.d     $f6, 320($s1)
# M[41] = M[33] / M[40]
        l.d     $f2, 264($s1)
        l.d     $f4, 320($s1)
        div.d   $f6, $f2, $f4
        s.d     $f6, 328($s1)
# M[42] = M[34] / M[2]
        l.d     $f2, 272($s1)
        l.d     $f4, 16($s1)
        div.d   $f6, $f2, $f4
        s.d     $f6, 336($s1)
# M[43] = M[41] + M[42]
        l.d     $f2, 328($s1)
        l.d     $f4, 336($s1)
        add.d   $f6, $f2, $f4
        s.d     $f6, 344($s1)
# M[34] = M[43]
        l.d     $f2, 344($s1)
        s.d     $f2, 272($s1)
# M[44] = M[20] + M[1]
        l.d     $f2, 160($s1)
        l.d     $f4, 8($s1)
        add.d   $f6, $f2, $f4
        s.d     $f6, 352($s1)
# M[20] = M[44]
        l.d     $f2, 352($s1)
        s.d     $f2, 160($s1)
        j       WhileStart1
WhileEnd1:
# M[11] = M[34]
        l.d     $f2, 272($s1)
        s.d     $f2, 88($s1)
# M[45] = M[2] / M[11]
        l.d     $f2, 16($s1)
        l.d     $f4, 88($s1)
        div.d   $f6, $f2, $f4
        s.d     $f6, 360($s1)
# M[29] = M[45]
        l.d     $f2, 360($s1)
        s.d     $f2, 232($s1)
# M[46] = M[25] * M[29]
        l.d     $f2, 200($s1)
        l.d     $f4, 232($s1)
        mul.d   $f6, $f2, $f4
        s.d     $f6, 368($s1)
# M[25] = M[46]
        l.d     $f2, 368($s1)
        s.d     $f2, 200($s1)
# M[47] = M[18] + M[1]
        l.d     $f2, 144($s1)
        l.d     $f4, 8($s1)
        add.d   $f6, $f2, $f4
        s.d     $f6, 376($s1)
# M[18] = M[47]
        l.d     $f2, 376($s1)
        s.d     $f2, 144($s1)
# Output M[18]
        li      $v0, 3
        l.d     $f12, 144($s1)
        syscall
# Output Blank
        li      $v0, 4
        la      $a0, Blank
        syscall
# Output M[25]
        li      $v0, 3
        l.d     $f12, 200($s1)
        syscall
# Output NewL
        li      $v0, 4
        la      $a0, NewL
        syscall
        j       WhileStart0
WhileEnd0:
# 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:
# # pi_prod.t: pi as product
# > n;
# p = 2;  # final product
# b = 0; # each denom
# i = 1; # loop count
# { n - i ?
#    # sqrt(2 + b), Newt #
#      k = 1;            #
#      x = 2 + b;        #
#      y = x;            #
#      { k - 2*5 ?       #
#        y = x/(2*y)+y/2;#
#        k = k + 1; }    #
#      b = y;            #
#    # sqrt done #########
#    t = 2/b; # term
#    p = p*t;
#    i = i + 1;
#    < i; < B; < p; < N;
# } $