home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.ee.pdx.edu
/
2014.02.ftp.ee.pdx.edu.tar
/
ftp.ee.pdx.edu
/
pub
/
users
/
Harry
/
compilers
/
p11
/
tst
/
array3.out.bak
< prev
next >
Wrap
Text File
|
2006-03-05
|
34KB
|
1,948 lines
!
! PCAT Compiler Version 1.0
!
.global .div
.global .rem
!
! Standard data fields
!
.data
.align 8
temp: .double 0
.text
strNL: .asciz "\n"
strInt: .asciz "%d"
strFlt: .asciz "%g"
strTrue: .asciz "TRUE"
strFalse: .asciz "FALSE"
message1: .asciz "Execution Error: Allocation failed!\n"
message2: .asciz "Execution Error: Pointer is NIL!\n"
message3: .asciz "Execution Error: Read statement failed!\n"
message4: .asciz "Execution Error: Array index is out of bounds!\n"
message5: .asciz "Execution Error: Count is not positive in array constructor!\n"
.align 8
!
! runtimeError1-5
!
! Branch to one of these labels to print an error message and abort.
!
runtimeError1:
set message1,%o0
call printf
nop
call exit
mov 1,%o0
runtimeError2:
set message2,%o0
call printf
nop
call exit
mov 1,%o0
runtimeError3:
set message3,%o0
call printf
nop
call exit
mov 1,%o0
runtimeError4:
set message4,%o0
call printf
nop
call exit
mov 1,%o0
runtimeError5:
set message5,%o0
call printf
nop
call exit
mov 1,%o0
! writeFlt
!
! This routine is passed a single precision floating number in %f0.
! It prints it by calling printf. It uses registers %f0, %f1.
!
writeFlt:
save %sp,-128,%sp
fstod %f0,%f0
set temp,%l0
std %f0,[%l0]
ldd [%l0],%o0
mov %o1,%o2
mov %o0,%o1
set strFlt,%o0
call printf
nop
ret
restore
! writeBool
!
! This routine is passed an integer in %i0/o0. It prints "FALSE" if this
! integer is 0 and "TRUE" otherwise.
!
writeBool:
save %sp,-128,%sp
cmp %i0,%g0
be printFalse
nop
set strTrue,%o0
ba printEnd
nop
printFalse:
set strFalse,%o0
printEnd:
call printf
nop
ret
restore
!
! Additional Fields
!
.data
display0: .word 0
.text
str36: .asciz "OK"
str35: .asciz "***** ERROR *****"
str34: .asciz "OK"
str33: .asciz "***** ERROR *****"
str32: .asciz "OK"
str31: .asciz "***** ERROR *****"
str30: .asciz "OK"
str29: .asciz "***** ERROR *****"
str28: .asciz "OK"
str27: .asciz "***** ERROR *****"
str26: .asciz "OK"
str25: .asciz "***** ERROR *****"
str24: .asciz "OK"
str23: .asciz "***** ERROR *****"
str22: .asciz "OK"
str21: .asciz "***** ERROR *****"
str20: .asciz "OK"
str19: .asciz "***** ERROR *****"
str18: .asciz "OK"
str17: .asciz "***** ERROR *****"
str16: .asciz "OK"
str15: .asciz "***** ERROR *****"
str14: .asciz "OK"
str13: .asciz "***** ERROR *****"
str12: .asciz "OK"
str11: .asciz "***** ERROR *****"
str10: .asciz "OK"
str9: .asciz "***** ERROR *****"
str8: .asciz "OK"
str7: .asciz "***** ERROR *****"
str6: .asciz "OK"
str5: .asciz "***** ERROR *****"
str4: .asciz "OK"
str3: .asciz "***** ERROR *****"
str2: .asciz "OK"
str1: .asciz "***** ERROR *****"
.align 8
! MAIN...
! mainEntry
.global main
main: save %sp,-296,%sp
set display0,%o0
st %fp,[%o0]
! VAR INITIALIZATION...
! a := 0
set 0,%o0
st %o0,[%fp+-4]
! VAR INITIALIZATION...
! c1 := 0
set 0,%o0
st %o0,[%fp+-8]
! VAR INITIALIZATION...
! c2 := c1
ld [%fp+-8],%o0
st %o0,[%fp+-12]
! VAR INITIALIZATION...
! c3 := c1
ld [%fp+-8],%o0
st %o0,[%fp+-16]
! VAR INITIALIZATION...
! v1 := c1
ld [%fp+-8],%o0
st %o0,[%fp+-20]
! VAR INITIALIZATION...
! v2 := c1
ld [%fp+-8],%o0
st %o0,[%fp+-24]
! VAR INITIALIZATION...
! v3 := c1
ld [%fp+-8],%o0
st %o0,[%fp+-28]
! ASSIGNMENT STMT...
! t1 := 0
set 0,%o0
st %o0,[%fp+-32]
! if 3 <= 0 goto runtimeError5 (integer)
set 3,%o0
set 0,%o1
cmp %o0,%o1
ble runtimeError5
nop
! t1 := t1 + 3 (integer)
ld [%fp+-32],%o0
set 3,%o1
add %o0,%o1,%o1
st %o1,[%fp+-32]
! if 2 <= 0 goto runtimeError5 (integer)
set 2,%o0
set 0,%o1
cmp %o0,%o1
ble runtimeError5
nop
! t1 := t1 + 2 (integer)
ld [%fp+-32],%o0
set 2,%o1
add %o0,%o1,%o1
st %o1,[%fp+-32]
! if 4 <= 0 goto runtimeError5 (integer)
set 4,%o0
set 0,%o1
cmp %o0,%o1
ble runtimeError5
nop
! t1 := t1 + 4 (integer)
ld [%fp+-32],%o0
set 4,%o1
add %o0,%o1,%o1
st %o1,[%fp+-32]
! t2 := t1 * 4 (integer)
ld [%fp+-32],%o0
set 4,%o1
smul %o0,%o1,%o1
st %o1,[%fp+-36]
! t2 := t2 + 4 (integer)
ld [%fp+-36],%o0
set 4,%o1
add %o0,%o1,%o1
st %o1,[%fp+-36]
! t2 := alloc (t2)
set 1,%o0
ld [%fp+-36],%o1
call calloc
nop
st %o0,[%fp+-36]
! if t2 = 0 goto runtimeError1 (integer)
ld [%fp+-36],%o0
set 0,%o1
cmp %o0,%o1
be runtimeError1
nop
! t3 := t2
ld [%fp+-36],%o0
st %o0,[%fp+-40]
! *t2 := t1
ld [%fp+-32],%o0
ld [%fp+-36],%o1
st %o0,[%o1]
! t4 := 3
set 3,%o0
st %o0,[%fp+-44]
! Label_1:
Label_1:
! t2 := t2 + 4 (integer)
ld [%fp+-36],%o0
set 4,%o1
add %o0,%o1,%o1
st %o1,[%fp+-36]
! *t2 := 111
set 111,%o0
ld [%fp+-36],%o1
st %o0,[%o1]
! t4 := t4 - 1 (integer)
ld [%fp+-44],%o0
set 1,%o1
sub %o0,%o1,%o1
st %o1,[%fp+-44]
! if t4 > 0 goto Label_1 (integer)
ld [%fp+-44],%o0
set 0,%o1
cmp %o0,%o1
bg Label_1
nop
! t4 := 2
set 2,%o0
st %o0,[%fp+-44]
! Label_2:
Label_2:
! t2 := t2 + 4 (integer)
ld [%fp+-36],%o0
set 4,%o1
add %o0,%o1,%o1
st %o1,[%fp+-36]
! *t2 := 222
set 222,%o0
ld [%fp+-36],%o1
st %o0,[%o1]
! t4 := t4 - 1 (integer)
ld [%fp+-44],%o0
set 1,%o1
sub %o0,%o1,%o1
st %o1,[%fp+-44]
! if t4 > 0 goto Label_2 (integer)
ld [%fp+-44],%o0
set 0,%o1
cmp %o0,%o1
bg Label_2
nop
! t4 := 4
set 4,%o0
st %o0,[%fp+-44]
! Label_3:
Label_3:
! t2 := t2 + 4 (integer)
ld [%fp+-36],%o0
set 4,%o1
add %o0,%o1,%o1
st %o1,[%fp+-36]
! *t2 := 333
set 333,%o0
ld [%fp+-36],%o1
st %o0,[%o1]
! t4 := t4 - 1 (integer)
ld [%fp+-44],%o0
set 1,%o1
sub %o0,%o1,%o1
st %o1,[%fp+-44]
! if t4 > 0 goto Label_3 (integer)
ld [%fp+-44],%o0
set 0,%o1
cmp %o0,%o1
bg Label_3
nop
! a := t3
ld [%fp+-40],%o0
st %o0,[%fp+-4]
! IF...
! if a = 0 goto runtimeError2 (integer)
ld [%fp+-4],%o0
set 0,%o1
cmp %o0,%o1
be runtimeError2
nop
! if 0 < 0 goto runtimeError4 (integer)
set 0,%o0
set 0,%o1
cmp %o0,%o1
bl runtimeError4
nop
! t5 := *a
ld [%fp+-4],%o0
ld [%o0],%o0
st %o0,[%fp+-48]
! if 0 >= t5 goto runtimeError4 (integer)
set 0,%o0
ld [%fp+-48],%o1
cmp %o0,%o1
bge runtimeError4
nop
! t5 := 0 * 4 (integer)
set 0,%o0
set 4,%o1
smul %o0,%o1,%o1
st %o1,[%fp+-48]
! t5 := t5 + 4 (integer)
ld [%fp+-48],%o0
set 4,%o1
add %o0,%o1,%o1
st %o1,[%fp+-48]
! t5 := a + t5 (integer)
ld [%fp+-4],%o0
ld [%fp+-48],%o1
add %o0,%o1,%o1
st %o1,[%fp+-48]
! t6 := *t5
ld [%fp+-48],%o0
ld [%o0],%o0
st %o0,[%fp+-52]
! if t6 != 111 goto Label_4 (integer)
ld [%fp+-52],%o0
set 111,%o1
cmp %o0,%o1
bne Label_4
nop
! goto Label_5
ba Label_5
nop
! Label_4:
Label_4:
! THEN...
! WRITE STMT...
! writeString str1
sethi %hi(str1),%o0
call printf
or %o0,%lo(str1),%o0
! writeNewline
sethi %hi(strNL),%o0
call printf
or %o0,%lo(strNL),%o0
! goto Label_6
ba Label_6
nop
! Label_5:
Label_5:
! ELSE...
! WRITE STMT...
! writeString str2
sethi %hi(str2),%o0
call printf
or %o0,%lo(str2),%o0
! writeNewline
sethi %hi(strNL),%o0
call printf
or %o0,%lo(strNL),%o0
! END IF...
! Label_6:
Label_6:
! IF...
! if a = 0 goto runtimeError2 (integer)
ld [%fp+-4],%o0
set 0,%o1
cmp %o0,%o1
be runtimeError2
nop
! if 1 < 0 goto runtimeError4 (integer)
set 1,%o0
set 0,%o1
cmp %o0,%o1
bl runtimeError4
nop
! t7 := *a
ld [%fp+-4],%o0
ld [%o0],%o0
st %o0,[%fp+-56]
! if 1 >= t7 goto runtimeError4 (integer)
set 1,%o0
ld [%fp+-56],%o1
cmp %o0,%o1
bge runtimeError4
nop
! t7 := 1 * 4 (integer)
set 1,%o0
set 4,%o1
smul %o0,%o1,%o1
st %o1,[%fp+-56]
! t7 := t7 + 4 (integer)
ld [%fp+-56],%o0
set 4,%o1
add %o0,%o1,%o1
st %o1,[%fp+-56]
! t7 := a + t7 (integer)
ld [%fp+-4],%o0
ld [%fp+-56],%o1
add %o0,%o1,%o1
st %o1,[%fp+-56]
! t8 := *t7
ld [%fp+-56],%o0
ld [%o0],%o0
st %o0,[%fp+-60]
! if t8 != 111 goto Label_7 (integer)
ld [%fp+-60],%o0
set 111,%o1
cmp %o0,%o1
bne Label_7
nop
! goto Label_8
ba Label_8
nop
! Label_7:
Label_7:
! THEN...
! WRITE STMT...
! writeString str3
sethi %hi(str3),%o0
call printf
or %o0,%lo(str3),%o0
! writeNewline
sethi %hi(strNL),%o0
call printf
or %o0,%lo(strNL),%o0
! goto Label_9
ba Label_9
nop
! Label_8:
Label_8:
! ELSE...
! WRITE STMT...
! writeString str4
sethi %hi(str4),%o0
call printf
or %o0,%lo(str4),%o0
! writeNewline
sethi %hi(strNL),%o0
call printf
or %o0,%lo(strNL),%o0
! END IF...
! Label_9:
Label_9:
! IF...
! if a = 0 goto runtimeError2 (integer)
ld [%fp+-4],%o0
set 0,%o1
cmp %o0,%o1
be runtimeError2
nop
! if 2 < 0 goto runtimeError4 (integer)
set 2,%o0
set 0,%o1
cmp %o0,%o1
bl runtimeError4
nop
! t9 := *a
ld [%fp+-4],%o0
ld [%o0],%o0
st %o0,[%fp+-64]
! if 2 >= t9 goto runtimeError4 (integer)
set 2,%o0
ld [%fp+-64],%o1
cmp %o0,%o1
bge runtimeError4
nop
! t9 := 2 * 4 (integer)
set 2,%o0
set 4,%o1
smul %o0,%o1,%o1
st %o1,[%fp+-64]
! t9 := t9 + 4 (integer)
ld [%fp+-64],%o0
set 4,%o1
add %o0,%o1,%o1
st %o1,[%fp+-64]
! t9 := a + t9 (integer)
ld [%fp+-4],%o0
ld [%fp+-64],%o1
add %o0,%o1,%o1
st %o1,[%fp+-64]
! t10 := *t9
ld [%fp+-64],%o0
ld [%o0],%o0
st %o0,[%fp+-68]
! if t10 != 111 goto Label_10 (integer)
ld [%fp+-68],%o0
set 111,%o1
cmp %o0,%o1
bne Label_10
nop
! goto Label_11
ba Label_11
nop
! Label_10:
Label_10:
! THEN...
! WRITE STMT...
! writeString str5
sethi %hi(str5),%o0
call printf
or %o0,%lo(str5),%o0
! writeNewline
sethi %hi(strNL),%o0
call printf
or %o0,%lo(strNL),%o0
! goto Label_12
ba Label_12
nop
! Label_11:
Label_11:
! ELSE...
! WRITE STMT...
! writeString str6
sethi %hi(str6),%o0
call printf
or %o0,%lo(str6),%o0
! writeNewline
sethi %hi(strNL),%o0
call printf
or %o0,%lo(strNL),%o0
! END IF...
! Label_12:
Label_12:
! IF...
! if a = 0 goto runtimeError2 (integer)
ld [%fp+-4],%o0
set 0,%o1
cmp %o0,%o1
be runtimeError2
nop
! if 3 < 0 goto runtimeError4 (integer)
set 3,%o0
set 0,%o1
cmp %o0,%o1
bl runtimeError4
nop
! t11 := *a
ld [%fp+-4],%o0
ld [%o0],%o0
st %o0,[%fp+-72]
! if 3 >= t11 goto runtimeError4 (integer)
set 3,%o0
ld [%fp+-72],%o1
cmp %o0,%o1
bge runtimeError4
nop
! t11 := 3 * 4 (integer)
set 3,%o0
set 4,%o1
smul %o0,%o1,%o1
st %o1,[%fp+-72]
! t11 := t11 + 4 (integer)
ld [%fp+-72],%o0
set 4,%o1
add %o0,%o1,%o1
st %o1,[%fp+-72]
! t11 := a + t11 (integer)
ld [%fp+-4],%o0
ld [%fp+-72],%o1
add %o0,%o1,%o1
st %o1,[%fp+-72]
! t12 := *t11
ld [%fp+-72],%o0
ld [%o0],%o0
st %o0,[%fp+-76]
! if t12 != 222 goto Label_13 (integer)
ld [%fp+-76],%o0
set 222,%o1
cmp %o0,%o1
bne Label_13
nop
! goto Label_14
ba Label_14
nop
! Label_13:
Label_13:
! THEN...
! WRITE STMT...
! writeString str7
sethi %hi(str7),%o0
call printf
or %o0,%lo(str7),%o0
! writeNewline
sethi %hi(strNL),%o0
call printf
or %o0,%lo(strNL),%o0
! goto Label_15
ba Label_15
nop
! Label_14:
Label_14:
! ELSE...
! WRITE STMT...
! writeString str8
sethi %hi(str8),%o0
call printf
or %o0,%lo(str8),%o0
! writeNewline
sethi %hi(strNL),%o0
call printf
or %o0,%lo(strNL),%o0
! END IF...
! Label_15:
Label_15:
! IF...
! if a = 0 goto runtimeError2 (integer)
ld [%fp+-4],%o0
set 0,%o1
cmp %o0,%o1
be runtimeError2
nop
! if 4 < 0 goto runtimeError4 (integer)
set 4,%o0
set 0,%o1
cmp %o0,%o1
bl runtimeError4
nop
! t13 := *a
ld [%fp+-4],%o0
ld [%o0],%o0
st %o0,[%fp+-80]
! if 4 >= t13 goto runtimeError4 (integer)
set 4,%o0
ld [%fp+-80],%o1
cmp %o0,%o1
bge runtimeError4
nop
! t13 := 4 * 4 (integer)
set 4,%o0
set 4,%o1
smul %o0,%o1,%o1
st %o1,[%fp+-80]
! t13 := t13 + 4 (integer)
ld [%fp+-80],%o0
set 4,%o1
add %o0,%o1,%o1
st %o1,[%fp+-80]
! t13 := a + t13 (integer)
ld [%fp+-4],%o0
ld [%fp+-80],%o1
add %o0,%o1,%o1
st %o1,[%fp+-80]
! t14 := *t13
ld [%fp+-80],%o0
ld [%o0],%o0
st %o0,[%fp+-84]
! if t14 != 222 goto Label_16 (integer)
ld [%fp+-84],%o0
set 222,%o1
cmp %o0,%o1
bne Label_16
nop
! goto Label_17
ba Label_17
nop
! Label_16:
Label_16:
! THEN...
! WRITE STMT...
! writeString str9
sethi %hi(str9),%o0
call printf
or %o0,%lo(str9),%o0
! writeNewline
sethi %hi(strNL),%o0
call printf
or %o0,%lo(strNL),%o0
! goto Label_18
ba Label_18
nop
! Label_17:
Label_17:
! ELSE...
! WRITE STMT...
! writeString str10
sethi %hi(str10),%o0
call printf
or %o0,%lo(str10),%o0
! writeNewline
sethi %hi(strNL),%o0
call printf
or %o0,%lo(strNL),%o0
! END IF...
! Label_18:
Label_18:
! IF...
! if a = 0 goto runtimeError2 (integer)
ld [%fp+-4],%o0
set 0,%o1
cmp %o0,%o1
be runtimeError2
nop
! if 5 < 0 goto runtimeError4 (integer)
set 5,%o0
set 0,%o1
cmp %o0,%o1
bl runtimeError4
nop
! t15 := *a
ld [%fp+-4],%o0
ld [%o0],%o0
st %o0,[%fp+-88]
! if 5 >= t15 goto runtimeError4 (integer)
set 5,%o0
ld [%fp+-88],%o1
cmp %o0,%o1
bge runtimeError4
nop
! t15 := 5 * 4 (integer)
set 5,%o0
set 4,%o1
smul %o0,%o1,%o1
st %o1,[%fp+-88]
! t15 := t15 + 4 (integer)
ld [%fp+-88],%o0
set 4,%o1
add %o0,%o1,%o1
st %o1,[%fp+-88]
! t15 := a + t15 (integer)
ld [%fp+-4],%o0
ld [%fp+-88],%o1
add %o0,%o1,%o1
st %o1,[%fp+-88]
! t16 := *t15
ld [%fp+-88],%o0
ld [%o0],%o0
st %o0,[%fp+-92]
! if t16 != 333 goto Label_19 (integer)
ld [%fp+-92],%o0
set 333,%o1
cmp %o0,%o1
bne Label_19
nop
! goto Label_20
ba Label_20
nop
! Label_19:
Label_19:
! THEN...
! WRITE STMT...
! writeString str11
sethi %hi(str11),%o0
call printf
or %o0,%lo(str11),%o0
! writeNewline
sethi %hi(strNL),%o0
call printf
or %o0,%lo(strNL),%o0
! goto Label_21
ba Label_21
nop
! Label_20:
Label_20:
! ELSE...
! WRITE STMT...
! writeString str12
sethi %hi(str12),%o0
call printf
or %o0,%lo(str12),%o0
! writeNewline
sethi %hi(strNL),%o0
call printf
or %o0,%lo(strNL),%o0
! END IF...
! Label_21:
Label_21:
! IF...
! if a = 0 goto runtimeError2 (integer)
ld [%fp+-4],%o0
set 0,%o1
cmp %o0,%o1
be runtimeError2
nop
! if 6 < 0 goto runtimeError4 (integer)
set 6,%o0
set 0,%o1
cmp %o0,%o1
bl runtimeError4
nop
! t17 := *a
ld [%fp+-4],%o0
ld [%o0],%o0
st %o0,[%fp+-96]
! if 6 >= t17 goto runtimeError4 (integer)
set 6,%o0
ld [%fp+-96],%o1
cmp %o0,%o1
bge runtimeError4
nop
! t17 := 6 * 4 (integer)
set 6,%o0
set 4,%o1
smul %o0,%o1,%o1
st %o1,[%fp+-96]
! t17 := t17 + 4 (integer)
ld [%fp+-96],%o0
set 4,%o1
add %o0,%o1,%o1
st %o1,[%fp+-96]
! t17 := a + t17 (integer)
ld [%fp+-4],%o0
ld [%fp+-96],%o1
add %o0,%o1,%o1
st %o1,[%fp+-96]
! t18 := *t17
ld [%fp+-96],%o0
ld [%o0],%o0
st %o0,[%fp+-100]
! if t18 != 333 goto Label_22 (integer)
ld [%fp+-100],%o0
set 333,%o1
cmp %o0,%o1
bne Label_22
nop
! goto Label_23
ba Label_23
nop
! Label_22:
Label_22:
! THEN...
! WRITE STMT...
! writeString str13
sethi %hi(str13),%o0
call printf
or %o0,%lo(str13),%o0
! writeNewline
sethi %hi(strNL),%o0
call printf
or %o0,%lo(strNL),%o0
! goto Label_24
ba Label_24
nop
! Label_23:
Label_23:
! ELSE...
! WRITE STMT...
! writeString str14
sethi %hi(str14),%o0
call printf
or %o0,%lo(str14),%o0
! writeNewline
sethi %hi(strNL),%o0
call printf
or %o0,%lo(strNL),%o0
! END IF...
! Label_24:
Label_24:
! IF...
! if a = 0 goto runtimeError2 (integer)
ld [%fp+-4],%o0
set 0,%o1
cmp %o0,%o1
be runtimeError2
nop
! if 7 < 0 goto runtimeError4 (integer)
set 7,%o0
set 0,%o1
cmp %o0,%o1
bl runtimeError4
nop
! t19 := *a
ld [%fp+-4],%o0
ld [%o0],%o0
st %o0,[%fp+-104]
! if 7 >= t19 goto runtimeError4 (integer)
set 7,%o0
ld [%fp+-104],%o1
cmp %o0,%o1
bge runtimeError4
nop
! t19 := 7 * 4 (integer)
set 7,%o0
set 4,%o1
smul %o0,%o1,%o1
st %o1,[%fp+-104]
! t19 := t19 + 4 (integer)
ld [%fp+-104],%o0
set 4,%o1
add %o0,%o1,%o1
st %o1,[%fp+-104]
! t19 := a + t19 (integer)
ld [%fp+-4],%o0
ld [%fp+-104],%o1
add %o0,%o1,%o1
st %o1,[%fp+-104]
! t20 := *t19
ld [%fp+-104],%o0
ld [%o0],%o0
st %o0,[%fp+-108]
! if t20 != 333 goto Label_25 (integer)
ld [%fp+-108],%o0
set 333,%o1
cmp %o0,%o1
bne Label_25
nop
! goto Label_26
ba Label_26
nop
! Label_25:
Label_25:
! THEN...
! WRITE STMT...
! writeString str15
sethi %hi(str15),%o0
call printf
or %o0,%lo(str15),%o0
! writeNewline
sethi %hi(strNL),%o0
call printf
or %o0,%lo(strNL),%o0
! goto Label_27
ba Label_27
nop
! Label_26:
Label_26:
! ELSE...
! WRITE STMT...
! writeString str16
sethi %hi(str16),%o0
call printf
or %o0,%lo(str16),%o0
! writeNewline
sethi %hi(strNL),%o0
call printf
or %o0,%lo(strNL),%o0
! END IF...
! Label_27:
Label_27:
! IF...
! if a = 0 goto runtimeError2 (integer)
ld [%fp+-4],%o0
set 0,%o1
cmp %o0,%o1
be runtimeError2
nop
! if 8 < 0 goto runtimeError4 (integer)
set 8,%o0
set 0,%o1
cmp %o0,%o1
bl runtimeError4
nop
! t21 := *a
ld [%fp+-4],%o0
ld [%o0],%o0
st %o0,[%fp+-112]
! if 8 >= t21 goto runtimeError4 (integer)
set 8,%o0
ld [%fp+-112],%o1
cmp %o0,%o1
bge runtimeError4
nop
! t21 := 8 * 4 (integer)
set 8,%o0
set 4,%o1
smul %o0,%o1,%o1
st %o1,[%fp+-112]
! t21 := t21 + 4 (integer)
ld [%fp+-112],%o0
set 4,%o1
add %o0,%o1,%o1
st %o1,[%fp+-112]
! t21 := a + t21 (integer)
ld [%fp+-4],%o0
ld [%fp+-112],%o1
add %o0,%o1,%o1
st %o1,[%fp+-112]
! t22 := *t21
ld [%fp+-112],%o0
ld [%o0],%o0
st %o0,[%fp+-116]
! if t22 != 333 goto Label_28 (integer)
ld [%fp+-116],%o0
set 333,%o1
cmp %o0,%o1
bne Label_28
nop
! goto Label_29
ba Label_29
nop
! Label_28:
Label_28:
! THEN...
! WRITE STMT...
! writeString str17
sethi %hi(str17),%o0
call printf
or %o0,%lo(str17),%o0
! writeNewline
sethi %hi(strNL),%o0
call printf
or %o0,%lo(strNL),%o0
! goto Label_30
ba Label_30
nop
! Label_29:
Label_29:
! ELSE...
! WRITE STMT...
! writeString str18
sethi %hi(str18),%o0
call printf
or %o0,%lo(str18),%o0
! writeNewline
sethi %hi(strNL),%o0
call printf
or %o0,%lo(strNL),%o0
! END IF...
! Label_30:
Label_30:
! ASSIGNMENT STMT...
! c1 := 3
set 3,%o0
st %o0,[%fp+-8]
! ASSIGNMENT STMT...
! c2 := 2
set 2,%o0
st %o0,[%fp+-12]
! ASSIGNMENT STMT...
! c3 := 4
set 4,%o0
st %o0,[%fp+-16]
! ASSIGNMENT STMT...
! v1 := 111
set 111,%o0
st %o0,[%fp+-20]
! ASSIGNMENT STMT...
! v2 := 222
set 222,%o0
st %o0,[%fp+-24]
! ASSIGNMENT STMT...
! v3 := 333
set 333,%o0
st %o0,[%fp+-28]
! ASSIGNMENT STMT...
! t23 := 0
set 0,%o0
st %o0,[%fp+-120]
! if c1 <= 0 goto runtimeError5 (integer)
ld [%fp+-8],%o0
set 0,%o1
cmp %o0,%o1
ble runtimeError5
nop
! t23 := t23 + c1 (integer)
ld [%fp+-120],%o0
ld [%fp+-8],%o1
add %o0,%o1,%o1
st %o1,[%fp+-120]
! if c2 <= 0 goto runtimeError5 (integer)
ld [%fp+-12],%o0
set 0,%o1
cmp %o0,%o1
ble runtimeError5
nop
! t23 := t23 + c2 (integer)
ld [%fp+-120],%o0
ld [%fp+-12],%o1
add %o0,%o1,%o1
st %o1,[%fp+-120]
! if c3 <= 0 goto runtimeError5 (integer)
ld [%fp+-16],%o0
set 0,%o1
cmp %o0,%o1
ble runtimeError5
nop
! t23 := t23 + c3 (integer)
ld [%fp+-120],%o0
ld [%fp+-16],%o1
add %o0,%o1,%o1
st %o1,[%fp+-120]
! t24 := t23 * 4 (integer)
ld [%fp+-120],%o0
set 4,%o1
smul %o0,%o1,%o1
st %o1,[%fp+-124]
! t24 := t24 + 4 (integer)
ld [%fp+-124],%o0
set 4,%o1
add %o0,%o1,%o1
st %o1,[%fp+-124]
! t24 := alloc (t24)
set 1,%o0
ld [%fp+-124],%o1
call calloc
nop
st %o0,[%fp+-124]
! if t24 = 0 goto runtimeError1 (integer)
ld [%fp+-124],%o0
set 0,%o1
cmp %o0,%o1
be runtimeError1
nop
! t25 := t24
ld [%fp+-124],%o0
st %o0,[%fp+-128]
! *t24 := t23
ld [%fp+-120],%o0
ld [%fp+-124],%o1
st %o0,[%o1]
! t26 := c1
ld [%fp+-8],%o0
st %o0,[%fp+-132]
! Label_31:
Label_31:
! t24 := t24 + 4 (integer)
ld [%fp+-124],%o0
set 4,%o1
add %o0,%o1,%o1
st %o1,[%fp+-124]
! *t24 := v1
ld [%fp+-20],%o0
ld [%fp+-124],%o1
st %o0,[%o1]
! t26 := t26 - 1 (integer)
ld [%fp+-132],%o0
set 1,%o1
sub %o0,%o1,%o1
st %o1,[%fp+-132]
! if t26 > 0 goto Label_31 (integer)
ld [%fp+-132],%o0
set 0,%o1
cmp %o0,%o1
bg Label_31
nop
! t26 := c2
ld [%fp+-12],%o0
st %o0,[%fp+-132]
! Label_32:
Label_32:
! t24 := t24 + 4 (integer)
ld [%fp+-124],%o0
set 4,%o1
add %o0,%o1,%o1
st %o1,[%fp+-124]
! *t24 := v2
ld [%fp+-24],%o0
ld [%fp+-124],%o1
st %o0,[%o1]
! t26 := t26 - 1 (integer)
ld [%fp+-132],%o0
set 1,%o1
sub %o0,%o1,%o1
st %o1,[%fp+-132]
! if t26 > 0 goto Label_32 (integer)
ld [%fp+-132],%o0
set 0,%o1
cmp %o0,%o1
bg Label_32
nop
! t26 := c3
ld [%fp+-16],%o0
st %o0,[%fp+-132]
! Label_33:
Label_33:
! t24 := t24 + 4 (integer)
ld [%fp+-124],%o0
set 4,%o1
add %o0,%o1,%o1
st %o1,[%fp+-124]
! *t24 := v3
ld [%fp+-28],%o0
ld [%fp+-124],%o1
st %o0,[%o1]
! t26 := t26 - 1 (integer)
ld [%fp+-132],%o0
set 1,%o1
sub %o0,%o1,%o1
st %o1,[%fp+-132]
! if t26 > 0 goto Label_33 (integer)
ld [%fp+-132],%o0
set 0,%o1
cmp %o0,%o1
bg Label_33
nop
! a := t25
ld [%fp+-128],%o0
st %o0,[%fp+-4]
! IF...
! if a = 0 goto runtimeError2 (integer)
ld [%fp+-4],%o0
set 0,%o1
cmp %o0,%o1
be runtimeError2
nop
! if 0 < 0 goto runtimeError4 (integer)
set 0,%o0
set 0,%o1
cmp %o0,%o1
bl runtimeError4
nop
! t27 := *a
ld [%fp+-4],%o0
ld [%o0],%o0
st %o0,[%fp+-136]
! if 0 >= t27 goto runtimeError4 (integer)
set 0,%o0
ld [%fp+-136],%o1
cmp %o0,%o1
bge runtimeError4
nop
! t27 := 0 * 4 (integer)
set 0,%o0
set 4,%o1
smul %o0,%o1,%o1
st %o1,[%fp+-136]
! t27 := t27 + 4 (integer)
ld [%fp+-136],%o0
set 4,%o1
add %o0,%o1,%o1
st %o1,[%fp+-136]
! t27 := a + t27 (integer)
ld [%fp+-4],%o0
ld [%fp+-136],%o1
add %o0,%o1,%o1
st %o1,[%fp+-136]
! t28 := *t27
ld [%fp+-136],%o0
ld [%o0],%o0
st %o0,[%fp+-140]
! if t28 != 111 goto Label_34 (integer)
ld [%fp+-140],%o0
set 111,%o1
cmp %o0,%o1
bne Label_34
nop
! goto Label_35
ba Label_35
nop
! Label_34:
Label_34:
! THEN...
! WRITE STMT...
! writeString str19
sethi %hi(str19),%o0
call printf
or %o0,%lo(str19),%o0
! writeNewline
sethi %hi(strNL),%o0
call printf
or %o0,%lo(strNL),%o0
! goto Label_36
ba Label_36
nop
! Label_35:
Label_35:
! ELSE...
! WRITE STMT...
! writeString str20
sethi %hi(str20),%o0
call printf
or %o0,%lo(str20),%o0
! writeNewline
sethi %hi(strNL),%o0
call printf
or %o0,%lo(strNL),%o0
! END IF...
! Label_36:
Label_36:
! IF...
! if a = 0 goto runtimeError2 (integer)
ld [%fp+-4],%o0
set 0,%o1
cmp %o0,%o1
be runtimeError2
nop
! if 1 < 0 goto runtimeError4 (integer)
set 1,%o0
set 0,%o1
cmp %o0,%o1
bl runtimeError4
nop
! t29 := *a
ld [%fp+-4],%o0
ld [%o0],%o0
st %o0,[%fp+-144]
! if 1 >= t29 goto runtimeError4 (integer)
set 1,%o0
ld [%fp+-144],%o1
cmp %o0,%o1
bge runtimeError4
nop
! t29 := 1 * 4 (integer)
set 1,%o0
set 4,%o1
smul %o0,%o1,%o1
st %o1,[%fp+-144]
! t29 := t29 + 4 (integer)
ld [%fp+-144],%o0
set 4,%o1
add %o0,%o1,%o1
st %o1,[%fp+-144]
! t29 := a + t29 (integer)
ld [%fp+-4],%o0
ld [%fp+-144],%o1
add %o0,%o1,%o1
st %o1,[%fp+-144]
! t30 := *t29
ld [%fp+-144],%o0
ld [%o0],%o0
st %o0,[%fp+-148]
! if t30 != 111 goto Label_37 (integer)
ld [%fp+-148],%o0
set 111,%o1
cmp %o0,%o1
bne Label_37
nop
! goto Label_38
ba Label_38
nop
! Label_37:
Label_37:
! THEN...
! WRITE STMT...
! writeString str21
sethi %hi(str21),%o0
call printf
or %o0,%lo(str21),%o0
! writeNewline
sethi %hi(strNL),%o0
call printf
or %o0,%lo(strNL),%o0
! goto Label_39
ba Label_39
nop
! Label_38:
Label_38:
! ELSE...
! WRITE STMT...
! writeString str22
sethi %hi(str22),%o0
call printf
or %o0,%lo(str22),%o0
! writeNewline
sethi %hi(strNL),%o0
call printf
or %o0,%lo(strNL),%o0
! END IF...
! Label_39:
Label_39:
! IF...
! if a = 0 goto runtimeError2 (integer)
ld [%fp+-4],%o0
set 0,%o1
cmp %o0,%o1
be runtimeError2
nop
! if 2 < 0 goto runtimeError4 (integer)
set 2,%o0
set 0,%o1
cmp %o0,%o1
bl runtimeError4
nop
! t31 := *a
ld [%fp+-4],%o0
ld [%o0],%o0
st %o0,[%fp+-152]
! if 2 >= t31 goto runtimeError4 (integer)
set 2,%o0
ld [%fp+-152],%o1
cmp %o0,%o1
bge runtimeError4
nop
! t31 := 2 * 4 (integer)
set 2,%o0
set 4,%o1
smul %o0,%o1,%o1
st %o1,[%fp+-152]
! t31 := t31 + 4 (integer)
ld [%fp+-152],%o0
set 4,%o1
add %o0,%o1,%o1
st %o1,[%fp+-152]
! t31 := a + t31 (integer)
ld [%fp+-4],%o0
ld [%fp+-152],%o1
add %o0,%o1,%o1
st %o1,[%fp+-152]
! t32 := *t31
ld [%fp+-152],%o0
ld [%o0],%o0
st %o0,[%fp+-156]
! if t32 != 111 goto Label_40 (integer)
ld [%fp+-156],%o0
set 111,%o1
cmp %o0,%o1
bne Label_40
nop
! goto Label_41
ba Label_41
nop
! Label_40:
Label_40:
! THEN...
! WRITE STMT...
! writeString str23
sethi %hi(str23),%o0
call printf
or %o0,%lo(str23),%o0
! writeNewline
sethi %hi(strNL),%o0
call printf
or %o0,%lo(strNL),%o0
! goto Label_42
ba Label_42
nop
! Label_41:
Label_41:
! ELSE...
! WRITE STMT...
! writeString str24
sethi %hi(str24),%o0
call printf
or %o0,%lo(str24),%o0
! writeNewline
sethi %hi(strNL),%o0
call printf
or %o0,%lo(strNL),%o0
! END IF...
! Label_42:
Label_42:
! IF...
! if a = 0 goto runtimeError2 (integer)
ld [%fp+-4],%o0
set 0,%o1
cmp %o0,%o1
be runtimeError2
nop
! if 3 < 0 goto runtimeError4 (integer)
set 3,%o0
set 0,%o1
cmp %o0,%o1
bl runtimeError4
nop
! t33 := *a
ld [%fp+-4],%o0
ld [%o0],%o0
st %o0,[%fp+-160]
! if 3 >= t33 goto runtimeError4 (integer)
set 3,%o0
ld [%fp+-160],%o1
cmp %o0,%o1
bge runtimeError4
nop
! t33 := 3 * 4 (integer)
set 3,%o0
set 4,%o1
smul %o0,%o1,%o1
st %o1,[%fp+-160]
! t33 := t33 + 4 (integer)
ld [%fp+-160],%o0
set 4,%o1
add %o0,%o1,%o1
st %o1,[%fp+-160]
! t33 := a + t33 (integer)
ld [%fp+-4],%o0
ld [%fp+-160],%o1
add %o0,%o1,%o1
st %o1,[%fp+-160]
! t34 := *t33
ld [%fp+-160],%o0
ld [%o0],%o0
st %o0,[%fp+-164]
! if t34 != 222 goto Label_43 (integer)
ld [%fp+-164],%o0
set 222,%o1
cmp %o0,%o1
bne Label_43
nop
! goto Label_44
ba Label_44
nop
! Label_43:
Label_43:
! THEN...
! WRITE STMT...
! writeString str25
sethi %hi(str25),%o0
call printf
or %o0,%lo(str25),%o0
! writeNewline
sethi %hi(strNL),%o0
call printf
or %o0,%lo(strNL),%o0
! goto Label_45
ba Label_45
nop
! Label_44:
Label_44:
! ELSE...
! WRITE STMT...
! writeString str26
sethi %hi(str26),%o0
call printf
or %o0,%lo(str26),%o0
! writeNewline
sethi %hi(strNL),%o0
call printf
or %o0,%lo(strNL),%o0
! END IF...
! Label_45:
Label_45:
! IF...
! if a = 0 goto runtimeError2 (integer)
ld [%fp+-4],%o0
set 0,%o1
cmp %o0,%o1
be runtimeError2
nop
! if 4 < 0 goto runtimeError4 (integer)
set 4,%o0
set 0,%o1
cmp %o0,%o1
bl runtimeError4
nop
! t35 := *a
ld [%fp+-4],%o0
ld [%o0],%o0
st %o0,[%fp+-168]
! if 4 >= t35 goto runtimeError4 (integer)
set 4,%o0
ld [%fp+-168],%o1
cmp %o0,%o1
bge runtimeError4
nop
! t35 := 4 * 4 (integer)
set 4,%o0
set 4,%o1
smul %o0,%o1,%o1
st %o1,[%fp+-168]
! t35 := t35 + 4 (integer)
ld [%fp+-168],%o0
set 4,%o1
add %o0,%o1,%o1
st %o1,[%fp+-168]
! t35 := a + t35 (integer)
ld [%fp+-4],%o0
ld [%fp+-168],%o1
add %o0,%o1,%o1
st %o1,[%fp+-168]
! t36 := *t35
ld [%fp+-168],%o0
ld [%o0],%o0
st %o0,[%fp+-172]
! if t36 != 222 goto Label_46 (integer)
ld [%fp+-172],%o0
set 222,%o1
cmp %o0,%o1
bne Label_46
nop
! goto Label_47
ba Label_47
nop
! Label_46:
Label_46:
! THEN...
! WRITE STMT...
! writeString str27
sethi %hi(str27),%o0
call printf
or %o0,%lo(str27),%o0
! writeNewline
sethi %hi(strNL),%o0
call printf
or %o0,%lo(strNL),%o0
! goto Label_48
ba Label_48
nop
! Label_47:
Label_47:
! ELSE...
! WRITE STMT...
! writeString str28
sethi %hi(str28),%o0
call printf
or %o0,%lo(str28),%o0
! writeNewline
sethi %hi(strNL),%o0
call printf
or %o0,%lo(strNL),%o0
! END IF...
! Label_48:
Label_48:
! IF...
! if a = 0 goto runtimeError2 (integer)
ld [%fp+-4],%o0
set 0,%o1
cmp %o0,%o1
be runtimeError2
nop
! if 5 < 0 goto runtimeError4 (integer)
set 5,%o0
set 0,%o1
cmp %o0,%o1
bl runtimeError4
nop
! t37 := *a
ld [%fp+-4],%o0
ld [%o0],%o0
st %o0,[%fp+-176]
! if 5 >= t37 goto runtimeError4 (integer)
set 5,%o0
ld [%fp+-176],%o1
cmp %o0,%o1
bge runtimeError4
nop
! t37 := 5 * 4 (integer)
set 5,%o0
set 4,%o1
smul %o0,%o1,%o1
st %o1,[%fp+-176]
! t37 := t37 + 4 (integer)
ld [%fp+-176],%o0
set 4,%o1
add %o0,%o1,%o1
st %o1,[%fp+-176]
! t37 := a + t37 (integer)
ld [%fp+-4],%o0
ld [%fp+-176],%o1
add %o0,%o1,%o1
st %o1,[%fp+-176]
! t38 := *t37
ld [%fp+-176],%o0
ld [%o0],%o0
st %o0,[%fp+-180]
! if t38 != 333 goto Label_49 (integer)
ld [%fp+-180],%o0
set 333,%o1
cmp %o0,%o1
bne Label_49
nop
! goto Label_50
ba Label_50
nop
! Label_49:
Label_49:
! THEN...
! WRITE STMT...
! writeString str29
sethi %hi(str29),%o0
call printf
or %o0,%lo(str29),%o0
! writeNewline
sethi %hi(strNL),%o0
call printf
or %o0,%lo(strNL),%o0
! goto Label_51
ba Label_51
nop
! Label_50:
Label_50:
! ELSE...
! WRITE STMT...
! writeString str30
sethi %hi(str30),%o0
call printf
or %o0,%lo(str30),%o0
! writeNewline
sethi %hi(strNL),%o0
call printf
or %o0,%lo(strNL),%o0
! END IF...
! Label_51:
Label_51:
! IF...
! if a = 0 goto runtimeError2 (integer)
ld [%fp+-4],%o0
set 0,%o1
cmp %o0,%o1
be runtimeError2
nop
! if 6 < 0 goto runtimeError4 (integer)
set 6,%o0
set 0,%o1
cmp %o0,%o1
bl runtimeError4
nop
! t39 := *a
ld [%fp+-4],%o0
ld [%o0],%o0
st %o0,[%fp+-184]
! if 6 >= t39 goto runtimeError4 (integer)
set 6,%o0
ld [%fp+-184],%o1
cmp %o0,%o1
bge runtimeError4
nop
! t39 := 6 * 4 (integer)
set 6,%o0
set 4,%o1
smul %o0,%o1,%o1
st %o1,[%fp+-184]
! t39 := t39 + 4 (integer)
ld [%fp+-184],%o0
set 4,%o1
add %o0,%o1,%o1
st %o1,[%fp+-184]
! t39 := a + t39 (integer)
ld [%fp+-4],%o0
ld [%fp+-184],%o1
add %o0,%o1,%o1
st %o1,[%fp+-184]
! t40 := *t39
ld [%fp+-184],%o0
ld [%o0],%o0
st %o0,[%fp+-188]
! if t40 != 333 goto Label_52 (integer)
ld [%fp+-188],%o0
set 333,%o1
cmp %o0,%o1
bne Label_52
nop
! goto Label_53
ba Label_53
nop
! Label_52:
Label_52:
! THEN...
! WRITE STMT...
! writeString str31
sethi %hi(str31),%o0
call printf
or %o0,%lo(str31),%o0
! writeNewline
sethi %hi(strNL),%o0
call printf
or %o0,%lo(strNL),%o0
! goto Label_54
ba Label_54
nop
! Label_53:
Label_53:
! ELSE...
! WRITE STMT...
! writeString str32
sethi %hi(str32),%o0
call printf
or %o0,%lo(str32),%o0
! writeNewline
sethi %hi(strNL),%o0
call printf
or %o0,%lo(strNL),%o0
! END IF...
! Label_54:
Label_54:
! IF...
! if a = 0 goto runtimeError2 (integer)
ld [%fp+-4],%o0
set 0,%o1
cmp %o0,%o1
be runtimeError2
nop
! if 7 < 0 goto runtimeError4 (integer)
set 7,%o0
set 0,%o1
cmp %o0,%o1
bl runtimeError4
nop
! t41 := *a
ld [%fp+-4],%o0
ld [%o0],%o0
st %o0,[%fp+-192]
! if 7 >= t41 goto runtimeError4 (integer)
set 7,%o0
ld [%fp+-192],%o1
cmp %o0,%o1
bge runtimeError4
nop
! t41 := 7 * 4 (integer)
set 7,%o0
set 4,%o1
smul %o0,%o1,%o1
st %o1,[%fp+-192]
! t41 := t41 + 4 (integer)
ld [%fp+-192],%o0
set 4,%o1
add %o0,%o1,%o1
st %o1,[%fp+-192]
! t41 := a + t41 (integer)
ld [%fp+-4],%o0
ld [%fp+-192],%o1
add %o0,%o1,%o1
st %o1,[%fp+-192]
! t42 := *t41
ld [%fp+-192],%o0
ld [%o0],%o0
st %o0,[%fp+-196]
! if t42 != 333 goto Label_55 (integer)
ld [%fp+-196],%o0
set 333,%o1
cmp %o0,%o1
bne Label_55
nop
! goto Label_56
ba Label_56
nop
! Label_55:
Label_55:
! THEN...
! WRITE STMT...
! writeString str33
sethi %hi(str33),%o0
call printf
or %o0,%lo(str33),%o0
! writeNewline
sethi %hi(strNL),%o0
call printf
or %o0,%lo(strNL),%o0
! goto Label_57
ba Label_57
nop
! Label_56:
Label_56:
! ELSE...
! WRITE STMT...
! writeString str34
sethi %hi(str34),%o0
call printf
or %o0,%lo(str34),%o0
! writeNewline
sethi %hi(strNL),%o0
call printf
or %o0,%lo(strNL),%o0
! END IF...
! Label_57:
Label_57:
! IF...
! if a = 0 goto runtimeError2 (integer)
ld [%fp+-4],%o0
set 0,%o1
cmp %o0,%o1
be runtimeError2
nop
! if 8 < 0 goto runtimeError4 (integer)
set 8,%o0
set 0,%o1
cmp %o0,%o1
bl runtimeError4
nop
! t43 := *a
ld [%fp+-4],%o0
ld [%o0],%o0
st %o0,[%fp+-200]
! if 8 >= t43 goto runtimeError4 (integer)
set 8,%o0
ld [%fp+-200],%o1
cmp %o0,%o1
bge runtimeError4
nop
! t43 := 8 * 4 (integer)
set 8,%o0
set 4,%o1
smul %o0,%o1,%o1
st %o1,[%fp+-200]
! t43 := t43 + 4 (integer)
ld [%fp+-200],%o0
set 4,%o1
add %o0,%o1,%o1
st %o1,[%fp+-200]
! t43 := a + t43 (integer)
ld [%fp+-4],%o0
ld [%fp+-200],%o1
add %o0,%o1,%o1
st %o1,[%fp+-200]
! t44 := *t43
ld [%fp+-200],%o0
ld [%o0],%o0
st %o0,[%fp+-204]
! if t44 != 333 goto Label_58 (integer)
ld [%fp+-204],%o0
set 333,%o1
cmp %o0,%o1
bne Label_58
nop
! goto Label_59
ba Label_59
nop
! Label_58:
Label_58:
! THEN...
! WRITE STMT...
! writeString str35
sethi %hi(str35),%o0
call printf
or %o0,%lo(str35),%o0
! writeNewline
sethi %hi(strNL),%o0
call printf
or %o0,%lo(strNL),%o0
! goto Label_60
ba Label_60
nop
! Label_59:
Label_59:
! ELSE...
! WRITE STMT...
! writeString str36
sethi %hi(str36),%o0
call printf
or %o0,%lo(str36),%o0
! writeNewline
sethi %hi(strNL),%o0
call printf
or %o0,%lo(strNL),%o0
! END IF...
! Label_60:
Label_60:
! MAIN EXIT...
! mainExit
ret
restore