### compiled by Neal Wagner on
#     Fri Dec 12 12:47:17 2014
main:   move    $s7, $ra
        la      $s1, M # data addr
# Print your name
        li      $v0, 4
        la      $a0, Name
        syscall
### Compiled code starts here
# M[22] = M[3]
        l.d     $f2, 24($s1)
        s.d     $f2, 176($s1)
### IfThenElseStart0:
# M[36] = M[22] - M[3]
        l.d     $f2, 176($s1)
        l.d     $f4, 24($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    ThenEnd0
# ThenPart0
# Output M[2]
        li      $v0, 3
        l.d     $f12, 16($s1)
        syscall
        j       EndIf0
ThenEnd0:
# Output M[3]
        li      $v0, 3
        l.d     $f12, 24($s1)
        syscall
EndIf0:
### IfThenElseStart1:
# M[37] = M[22] - M[5]
        l.d     $f2, 176($s1)
        l.d     $f4, 40($s1)
        sub.d   $f6, $f2, $f4
        s.d     $f6, 296($s1)
        l.d     $f2, 296($s1)
        l.d     $f4, 0($s1)
        c.eq.d  $f2, $f4
        bc1t    ThenEnd1
# ThenPart1
# Output M[4]
        li      $v0, 3
        l.d     $f12, 32($s1)
        syscall
        j       EndIf1
ThenEnd1:
# Output M[5]
        li      $v0, 3
        l.d     $f12, 40($s1)
        syscall
EndIf1:
### IfThenElseStart2:
# M[38] = M[22] - M[3]
        l.d     $f2, 176($s1)
        l.d     $f4, 24($s1)
        sub.d   $f6, $f2, $f4
        s.d     $f6, 304($s1)
        l.d     $f2, 304($s1)
        l.d     $f4, 0($s1)
        c.eq.d  $f2, $f4
        bc1t    ThenEnd2
# ThenPart2
# Output M[6]
        li      $v0, 3
        l.d     $f12, 48($s1)
        syscall
ThenEnd2:
### EndIf2
### IfThenElseStart3:
# M[39] = M[22] - M[5]
        l.d     $f2, 176($s1)
        l.d     $f4, 40($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    ThenEnd3
# ThenPart3
# Output M[7]
        li      $v0, 3
        l.d     $f12, 56($s1)
        syscall
ThenEnd3:
### EndIf3
# 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:
# # test_if.t: test if-then-(optional)else works
# m = 3;
# [ m - 3 ? < 2; : < 3; ]
# [ m - 5 ? < 4; : < 5; ]
# [ m - 3 ? < 6; ]
# [ m - 5 ? < 7; ]
# $