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 / local.out.bak < prev    next >
Text File  |  2006-03-05  |  28KB  |  1,568 lines

  1. !
  2. ! PCAT Compiler Version 1.0
  3. !
  4.              .global  .div
  5.              .global  .rem
  6. !
  7. ! Standard data fields
  8. !
  9.              .data
  10.              .align   8
  11. temp:        .double  0
  12.              .text
  13. strNL:       .asciz   "\n"
  14. strInt:      .asciz   "%d"
  15. strFlt:      .asciz   "%g"
  16. strTrue:     .asciz   "TRUE"
  17. strFalse:    .asciz   "FALSE"
  18. message1:    .asciz   "Execution Error: Allocation failed!\n"
  19. message2:    .asciz   "Execution Error: Pointer is NIL!\n"
  20. message3:    .asciz   "Execution Error: Read statement failed!\n"
  21. message4:    .asciz   "Execution Error: Array index is out of bounds!\n"
  22. message5:    .asciz   "Execution Error: Count is not positive in array constructor!\n"
  23.              .align   8
  24. !
  25. ! runtimeError1-5
  26. !
  27. ! Branch to one of these labels to print an error message and abort.
  28. !
  29. runtimeError1:
  30.              set      message1,%o0
  31.              call     printf
  32.              nop
  33.              call     exit
  34.              mov      1,%o0
  35. runtimeError2:
  36.              set      message2,%o0
  37.              call     printf
  38.              nop
  39.              call     exit
  40.              mov      1,%o0
  41. runtimeError3:
  42.              set      message3,%o0
  43.              call     printf
  44.              nop
  45.              call     exit
  46.              mov      1,%o0
  47. runtimeError4:
  48.              set      message4,%o0
  49.              call     printf
  50.              nop
  51.              call     exit
  52.              mov      1,%o0
  53. runtimeError5:
  54.              set      message5,%o0
  55.              call     printf
  56.              nop
  57.              call     exit
  58.              mov      1,%o0
  59. ! writeFlt
  60. !
  61. ! This routine is passed a single precision floating number in %f0.
  62. ! It prints it by calling printf.  It uses registers %f0, %f1.
  63. !
  64. writeFlt:
  65.         save    %sp,-128,%sp
  66.         fstod   %f0,%f0
  67.         set     temp,%l0
  68.         std     %f0,[%l0]
  69.         ldd     [%l0],%o0
  70.         mov     %o1,%o2
  71.         mov     %o0,%o1
  72.         set     strFlt,%o0
  73.         call    printf
  74.         nop
  75.         ret
  76.         restore
  77. ! writeBool
  78. !
  79. ! This routine is passed an integer in %i0/o0.  It prints "FALSE" if this
  80. ! integer is 0 and "TRUE" otherwise.
  81. !
  82. writeBool:
  83.         save    %sp,-128,%sp
  84.         cmp     %i0,%g0
  85.         be      printFalse
  86.         nop
  87.         set     strTrue,%o0
  88.         ba      printEnd
  89.         nop
  90. printFalse:
  91.         set     strFalse,%o0
  92. printEnd:
  93.         call    printf
  94.         nop
  95.         ret
  96.         restore
  97. !
  98. ! Additional Fields
  99. !
  100.     .data
  101. display0:    .word    0
  102. display1:    .word    0
  103. display2:    .word    0
  104.     .text
  105. str53:    .asciz    "*****  Error: should be 1601  *****"
  106. str52:    .asciz    "d  = "
  107. str51:    .asciz    "*****  Error: should be 1501  *****"
  108. str50:    .asciz    "c  = "
  109. str49:    .asciz    "*****  Error: should be 1302  *****"
  110. str48:    .asciz    "b  = "
  111. str47:    .asciz    "*****  Error: should be 1003  *****"
  112. str46:    .asciz    "a  = "
  113. str45:    .asciz    "*****  Error: should be 901  *****"
  114. str44:    .asciz    "z1 = "
  115. str43:    .asciz    "*****  Error: should be 801  *****"
  116. str42:    .asciz    "y2 = "
  117. str41:    .asciz    "*****  Error: should be 502  *****"
  118. str40:    .asciz    "y1 = "
  119. str39:    .asciz    "*****  Error: should be 701  *****"
  120. str38:    .asciz    "x3 = "
  121. str37:    .asciz    "*****  Error: should be 402  *****"
  122. str36:    .asciz    "x2 = "
  123. str35:    .asciz    "*****  Error: should be 103  *****"
  124. str34:    .asciz    "x1 = "
  125. str33:    .asciz    "=== foo2 ==="
  126. str32:    .asciz    "*****  Error: should be 1202  *****"
  127. str31:    .asciz    "d  = "
  128. str30:    .asciz    "*****  Error: should be 1401  *****"
  129. str29:    .asciz    "c  = "
  130. str28:    .asciz    "*****  Error: should be 1302  *****"
  131. str27:    .asciz    "b  = "
  132. str26:    .asciz    "*****  Error: should be 1003  *****"
  133. str25:    .asciz    "a  = "
  134. str24:    .asciz    "*****  Error: should be 601  *****"
  135. str23:    .asciz    "y2 = "
  136. str22:    .asciz    "*****  Error: should be 502  *****"
  137. str21:    .asciz    "y1 = "
  138. str20:    .asciz    "*****  Error: should be 302  *****"
  139. str19:    .asciz    "x3 = "
  140. str18:    .asciz    "*****  Error: should be 402  *****"
  141. str17:    .asciz    "x2 = "
  142. str16:    .asciz    "*****  Error: should be 103  *****"
  143. str15:    .asciz    "x1 = "
  144. str14:    .asciz    "=== foo1 ==="
  145. str13:    .asciz    "*****  Error: should be 1202  *****"
  146. str12:    .asciz    "d  = "
  147. str11:    .asciz    "*****  Error: should be 1101  *****"
  148. str10:    .asciz    "b  = "
  149. str9:    .asciz    "*****  Error: should be 1003  *****"
  150. str8:    .asciz    "a  = "
  151. str7:    .asciz    "*****  Error: should be 302  *****"
  152. str6:    .asciz    "x3 = "
  153. str5:    .asciz    "*****  Error: should be 201  *****"
  154. str4:    .asciz    "x2 = "
  155. str3:    .asciz    "*****  Error: should be 103  *****"
  156. str2:    .asciz    "x1 = "
  157. str1:    .asciz    "=== main ==="
  158.     .align    8
  159. ! MAIN...
  160. !   mainEntry
  161.     .global    main
  162. main:    save    %sp,-144,%sp
  163.     set    display0,%o0
  164.     st    %fp,[%o0]
  165. ! VAR INITIALIZATION...
  166. !   x1 := 100
  167.     set    100,%o0
  168.     st    %o0,[%fp+-4]
  169. ! VAR INITIALIZATION...
  170. !   x2 := 200
  171.     set    200,%o0
  172.     st    %o0,[%fp+-8]
  173. ! VAR INITIALIZATION...
  174. !   x3 := 300
  175.     set    300,%o0
  176.     st    %o0,[%fp+-12]
  177. ! VAR INITIALIZATION...
  178. !   a := 1000
  179.     set    1000,%o0
  180.     st    %o0,[%fp+-16]
  181. ! VAR INITIALIZATION...
  182. !   b := 1100
  183.     set    1100,%o0
  184.     st    %o0,[%fp+-20]
  185. ! VAR INITIALIZATION...
  186. !   d := 1200
  187.     set    1200,%o0
  188.     st    %o0,[%fp+-24]
  189. ! ASSIGNMENT STMT...
  190. !   t1 := x1 + 1        (integer)
  191.     ld    [%fp+-4],%o0
  192.     set    1,%o1
  193.     add    %o0,%o1,%o1
  194.     st    %o1,[%fp+-28]
  195. !   x1 := t1
  196.     ld    [%fp+-28],%o0
  197.     st    %o0,[%fp+-4]
  198. ! ASSIGNMENT STMT...
  199. !   t2 := x2 + 1        (integer)
  200.     ld    [%fp+-8],%o0
  201.     set    1,%o1
  202.     add    %o0,%o1,%o1
  203.     st    %o1,[%fp+-32]
  204. !   x2 := t2
  205.     ld    [%fp+-32],%o0
  206.     st    %o0,[%fp+-8]
  207. ! ASSIGNMENT STMT...
  208. !   t3 := x3 + 1        (integer)
  209.     ld    [%fp+-12],%o0
  210.     set    1,%o1
  211.     add    %o0,%o1,%o1
  212.     st    %o1,[%fp+-36]
  213. !   x3 := t3
  214.     ld    [%fp+-36],%o0
  215.     st    %o0,[%fp+-12]
  216. ! ASSIGNMENT STMT...
  217. !   t4 := a + 1        (integer)
  218.     ld    [%fp+-16],%o0
  219.     set    1,%o1
  220.     add    %o0,%o1,%o1
  221.     st    %o1,[%fp+-40]
  222. !   a := t4
  223.     ld    [%fp+-40],%o0
  224.     st    %o0,[%fp+-16]
  225. ! ASSIGNMENT STMT...
  226. !   t5 := b + 1        (integer)
  227.     ld    [%fp+-20],%o0
  228.     set    1,%o1
  229.     add    %o0,%o1,%o1
  230.     st    %o1,[%fp+-44]
  231. !   b := t5
  232.     ld    [%fp+-44],%o0
  233.     st    %o0,[%fp+-20]
  234. ! ASSIGNMENT STMT...
  235. !   t6 := d + 1        (integer)
  236.     ld    [%fp+-24],%o0
  237.     set    1,%o1
  238.     add    %o0,%o1,%o1
  239.     st    %o1,[%fp+-48]
  240. !   d := t6
  241.     ld    [%fp+-48],%o0
  242.     st    %o0,[%fp+-24]
  243. ! CALL STMT...
  244. !   param 1,1300
  245.     set    1300,%o0
  246.     st    %o0,[%sp+68]
  247. !   param 2,1400
  248.     set    1400,%o0
  249.     st    %o0,[%sp+72]
  250. !   call p1_foo1
  251.     call    p1_foo1
  252.     nop
  253. ! WRITE STMT...
  254. !   writeString str1
  255.     sethi    %hi(str1),%o0
  256.     call    printf
  257.     or    %o0,%lo(str1),%o0
  258. !   writeNewline
  259.     sethi    %hi(strNL),%o0
  260.     call    printf
  261.     or    %o0,%lo(strNL),%o0
  262. ! WRITE STMT...
  263. !   writeString str2
  264.     sethi    %hi(str2),%o0
  265.     call    printf
  266.     or    %o0,%lo(str2),%o0
  267. !   writeInt x1
  268.     ld    [%fp+-4],%o1
  269.     sethi    %hi(strInt),%o0
  270.     call    printf
  271.     or    %o0,%lo(strInt),%o0
  272. !   writeNewline
  273.     sethi    %hi(strNL),%o0
  274.     call    printf
  275.     or    %o0,%lo(strNL),%o0
  276. ! IF...
  277. !   if x1 != 103 goto Label_1        (integer)
  278.     ld    [%fp+-4],%o0
  279.     set    103,%o1
  280.     cmp    %o0,%o1
  281.     bne    Label_1
  282.     nop
  283. !   goto Label_2
  284.     ba    Label_2
  285.     nop
  286. !   Label_1:
  287. Label_1:
  288. ! THEN...
  289. ! WRITE STMT...
  290. !   writeString str3
  291.     sethi    %hi(str3),%o0
  292.     call    printf
  293.     or    %o0,%lo(str3),%o0
  294. !   writeNewline
  295.     sethi    %hi(strNL),%o0
  296.     call    printf
  297.     or    %o0,%lo(strNL),%o0
  298. ! END IF...
  299. !   Label_2:
  300. Label_2:
  301. ! WRITE STMT...
  302. !   writeString str4
  303.     sethi    %hi(str4),%o0
  304.     call    printf
  305.     or    %o0,%lo(str4),%o0
  306. !   writeInt x2
  307.     ld    [%fp+-8],%o1
  308.     sethi    %hi(strInt),%o0
  309.     call    printf
  310.     or    %o0,%lo(strInt),%o0
  311. !   writeNewline
  312.     sethi    %hi(strNL),%o0
  313.     call    printf
  314.     or    %o0,%lo(strNL),%o0
  315. ! IF...
  316. !   if x2 != 201 goto Label_3        (integer)
  317.     ld    [%fp+-8],%o0
  318.     set    201,%o1
  319.     cmp    %o0,%o1
  320.     bne    Label_3
  321.     nop
  322. !   goto Label_4
  323.     ba    Label_4
  324.     nop
  325. !   Label_3:
  326. Label_3:
  327. ! THEN...
  328. ! WRITE STMT...
  329. !   writeString str5
  330.     sethi    %hi(str5),%o0
  331.     call    printf
  332.     or    %o0,%lo(str5),%o0
  333. !   writeNewline
  334.     sethi    %hi(strNL),%o0
  335.     call    printf
  336.     or    %o0,%lo(strNL),%o0
  337. ! END IF...
  338. !   Label_4:
  339. Label_4:
  340. ! WRITE STMT...
  341. !   writeString str6
  342.     sethi    %hi(str6),%o0
  343.     call    printf
  344.     or    %o0,%lo(str6),%o0
  345. !   writeInt x3
  346.     ld    [%fp+-12],%o1
  347.     sethi    %hi(strInt),%o0
  348.     call    printf
  349.     or    %o0,%lo(strInt),%o0
  350. !   writeNewline
  351.     sethi    %hi(strNL),%o0
  352.     call    printf
  353.     or    %o0,%lo(strNL),%o0
  354. ! IF...
  355. !   if x3 != 302 goto Label_5        (integer)
  356.     ld    [%fp+-12],%o0
  357.     set    302,%o1
  358.     cmp    %o0,%o1
  359.     bne    Label_5
  360.     nop
  361. !   goto Label_6
  362.     ba    Label_6
  363.     nop
  364. !   Label_5:
  365. Label_5:
  366. ! THEN...
  367. ! WRITE STMT...
  368. !   writeString str7
  369.     sethi    %hi(str7),%o0
  370.     call    printf
  371.     or    %o0,%lo(str7),%o0
  372. !   writeNewline
  373.     sethi    %hi(strNL),%o0
  374.     call    printf
  375.     or    %o0,%lo(strNL),%o0
  376. ! END IF...
  377. !   Label_6:
  378. Label_6:
  379. ! WRITE STMT...
  380. !   writeString str8
  381.     sethi    %hi(str8),%o0
  382.     call    printf
  383.     or    %o0,%lo(str8),%o0
  384. !   writeInt a
  385.     ld    [%fp+-16],%o1
  386.     sethi    %hi(strInt),%o0
  387.     call    printf
  388.     or    %o0,%lo(strInt),%o0
  389. !   writeNewline
  390.     sethi    %hi(strNL),%o0
  391.     call    printf
  392.     or    %o0,%lo(strNL),%o0
  393. ! IF...
  394. !   if a != 1003 goto Label_7        (integer)
  395.     ld    [%fp+-16],%o0
  396.     set    1003,%o1
  397.     cmp    %o0,%o1
  398.     bne    Label_7
  399.     nop
  400. !   goto Label_8
  401.     ba    Label_8
  402.     nop
  403. !   Label_7:
  404. Label_7:
  405. ! THEN...
  406. ! WRITE STMT...
  407. !   writeString str9
  408.     sethi    %hi(str9),%o0
  409.     call    printf
  410.     or    %o0,%lo(str9),%o0
  411. !   writeNewline
  412.     sethi    %hi(strNL),%o0
  413.     call    printf
  414.     or    %o0,%lo(strNL),%o0
  415. ! END IF...
  416. !   Label_8:
  417. Label_8:
  418. ! WRITE STMT...
  419. !   writeString str10
  420.     sethi    %hi(str10),%o0
  421.     call    printf
  422.     or    %o0,%lo(str10),%o0
  423. !   writeInt b
  424.     ld    [%fp+-20],%o1
  425.     sethi    %hi(strInt),%o0
  426.     call    printf
  427.     or    %o0,%lo(strInt),%o0
  428. !   writeNewline
  429.     sethi    %hi(strNL),%o0
  430.     call    printf
  431.     or    %o0,%lo(strNL),%o0
  432. ! IF...
  433. !   if b != 1101 goto Label_9        (integer)
  434.     ld    [%fp+-20],%o0
  435.     set    1101,%o1
  436.     cmp    %o0,%o1
  437.     bne    Label_9
  438.     nop
  439. !   goto Label_10
  440.     ba    Label_10
  441.     nop
  442. !   Label_9:
  443. Label_9:
  444. ! THEN...
  445. ! WRITE STMT...
  446. !   writeString str11
  447.     sethi    %hi(str11),%o0
  448.     call    printf
  449.     or    %o0,%lo(str11),%o0
  450. !   writeNewline
  451.     sethi    %hi(strNL),%o0
  452.     call    printf
  453.     or    %o0,%lo(strNL),%o0
  454. ! END IF...
  455. !   Label_10:
  456. Label_10:
  457. ! WRITE STMT...
  458. !   writeString str12
  459.     sethi    %hi(str12),%o0
  460.     call    printf
  461.     or    %o0,%lo(str12),%o0
  462. !   writeInt d
  463.     ld    [%fp+-24],%o1
  464.     sethi    %hi(strInt),%o0
  465.     call    printf
  466.     or    %o0,%lo(strInt),%o0
  467. !   writeNewline
  468.     sethi    %hi(strNL),%o0
  469.     call    printf
  470.     or    %o0,%lo(strNL),%o0
  471. ! IF...
  472. !   if d != 1202 goto Label_11        (integer)
  473.     ld    [%fp+-24],%o0
  474.     set    1202,%o1
  475.     cmp    %o0,%o1
  476.     bne    Label_11
  477.     nop
  478. !   goto Label_12
  479.     ba    Label_12
  480.     nop
  481. !   Label_11:
  482. Label_11:
  483. ! THEN...
  484. ! WRITE STMT...
  485. !   writeString str13
  486.     sethi    %hi(str13),%o0
  487.     call    printf
  488.     or    %o0,%lo(str13),%o0
  489. !   writeNewline
  490.     sethi    %hi(strNL),%o0
  491.     call    printf
  492.     or    %o0,%lo(strNL),%o0
  493. ! END IF...
  494. !   Label_12:
  495. Label_12:
  496. ! MAIN EXIT...
  497. !   mainExit
  498.     ret
  499.     restore
  500. ! PROCEDURE...
  501. !   procEntry p1_foo1,lexLev=1,frameSize=144
  502. p1_foo1:    save    %sp,-144,%sp
  503.     set    display1,%o0
  504.     ld    [%o0],%o1
  505.     st    %o1,[%fp+64]
  506.     st    %fp,[%o0]
  507. !   formal 1,b
  508. !   formal 2,c
  509. ! VAR INITIALIZATION...
  510. !   x2 := 400
  511.     set    400,%o0
  512.     st    %o0,[%fp+-4]
  513. ! VAR INITIALIZATION...
  514. !   y1 := 500
  515.     set    500,%o0
  516.     st    %o0,[%fp+-8]
  517. ! VAR INITIALIZATION...
  518. !   y2 := 600
  519.     set    600,%o0
  520.     st    %o0,[%fp+-12]
  521. ! ASSIGNMENT STMT...
  522. !   t7 := x1 + 1        (integer)
  523.     set    display0,%o0
  524.     ld    [%o0],%o0
  525.     ld    [%o0+-4],%o0
  526.     set    1,%o1
  527.     add    %o0,%o1,%o1
  528.     st    %o1,[%fp+-16]
  529. !   x1 := t7
  530.     ld    [%fp+-16],%o0
  531.     set    display0,%o1
  532.     ld    [%o1],%o1
  533.     st    %o0,[%o1+-4]
  534. ! ASSIGNMENT STMT...
  535. !   t8 := x2 + 1        (integer)
  536.     ld    [%fp+-4],%o0
  537.     set    1,%o1
  538.     add    %o0,%o1,%o1
  539.     st    %o1,[%fp+-20]
  540. !   x2 := t8
  541.     ld    [%fp+-20],%o0
  542.     st    %o0,[%fp+-4]
  543. ! ASSIGNMENT STMT...
  544. !   t9 := x3 + 1        (integer)
  545.     set    display0,%o0
  546.     ld    [%o0],%o0
  547.     ld    [%o0+-12],%o0
  548.     set    1,%o1
  549.     add    %o0,%o1,%o1
  550.     st    %o1,[%fp+-24]
  551. !   x3 := t9
  552.     ld    [%fp+-24],%o0
  553.     set    display0,%o1
  554.     ld    [%o1],%o1
  555.     st    %o0,[%o1+-12]
  556. ! ASSIGNMENT STMT...
  557. !   t10 := y1 + 1        (integer)
  558.     ld    [%fp+-8],%o0
  559.     set    1,%o1
  560.     add    %o0,%o1,%o1
  561.     st    %o1,[%fp+-28]
  562. !   y1 := t10
  563.     ld    [%fp+-28],%o0
  564.     st    %o0,[%fp+-8]
  565. ! ASSIGNMENT STMT...
  566. !   t11 := y2 + 1        (integer)
  567.     ld    [%fp+-12],%o0
  568.     set    1,%o1
  569.     add    %o0,%o1,%o1
  570.     st    %o1,[%fp+-32]
  571. !   y2 := t11
  572.     ld    [%fp+-32],%o0
  573.     st    %o0,[%fp+-12]
  574. ! ASSIGNMENT STMT...
  575. !   t12 := a + 1        (integer)
  576.     set    display0,%o0
  577.     ld    [%o0],%o0
  578.     ld    [%o0+-16],%o0
  579.     set    1,%o1
  580.     add    %o0,%o1,%o1
  581.     st    %o1,[%fp+-36]
  582. !   a := t12
  583.     ld    [%fp+-36],%o0
  584.     set    display0,%o1
  585.     ld    [%o1],%o1
  586.     st    %o0,[%o1+-16]
  587. ! ASSIGNMENT STMT...
  588. !   t13 := b + 1        (integer)
  589.     ld    [%fp+68],%o0
  590.     set    1,%o1
  591.     add    %o0,%o1,%o1
  592.     st    %o1,[%fp+-40]
  593. !   b := t13
  594.     ld    [%fp+-40],%o0
  595.     st    %o0,[%fp+68]
  596. ! ASSIGNMENT STMT...
  597. !   t14 := c + 1        (integer)
  598.     ld    [%fp+72],%o0
  599.     set    1,%o1
  600.     add    %o0,%o1,%o1
  601.     st    %o1,[%fp+-44]
  602. !   c := t14
  603.     ld    [%fp+-44],%o0
  604.     st    %o0,[%fp+72]
  605. ! ASSIGNMENT STMT...
  606. !   t15 := d + 1        (integer)
  607.     set    display0,%o0
  608.     ld    [%o0],%o0
  609.     ld    [%o0+-24],%o0
  610.     set    1,%o1
  611.     add    %o0,%o1,%o1
  612.     st    %o1,[%fp+-48]
  613. !   d := t15
  614.     ld    [%fp+-48],%o0
  615.     set    display0,%o1
  616.     ld    [%o1],%o1
  617.     st    %o0,[%o1+-24]
  618. ! CALL STMT...
  619. !   param 1,1500
  620.     set    1500,%o0
  621.     st    %o0,[%sp+68]
  622. !   param 2,1600
  623.     set    1600,%o0
  624.     st    %o0,[%sp+72]
  625. !   call p2_foo2
  626.     call    p2_foo2
  627.     nop
  628. ! WRITE STMT...
  629. !   writeString str14
  630.     sethi    %hi(str14),%o0
  631.     call    printf
  632.     or    %o0,%lo(str14),%o0
  633. !   writeNewline
  634.     sethi    %hi(strNL),%o0
  635.     call    printf
  636.     or    %o0,%lo(strNL),%o0
  637. ! WRITE STMT...
  638. !   writeString str15
  639.     sethi    %hi(str15),%o0
  640.     call    printf
  641.     or    %o0,%lo(str15),%o0
  642. !   writeInt x1
  643.     set    display0,%o1
  644.     ld    [%o1],%o1
  645.     ld    [%o1+-4],%o1
  646.     sethi    %hi(strInt),%o0
  647.     call    printf
  648.     or    %o0,%lo(strInt),%o0
  649. !   writeNewline
  650.     sethi    %hi(strNL),%o0
  651.     call    printf
  652.     or    %o0,%lo(strNL),%o0
  653. ! IF...
  654. !   if x1 != 103 goto Label_13        (integer)
  655.     set    display0,%o0
  656.     ld    [%o0],%o0
  657.     ld    [%o0+-4],%o0
  658.     set    103,%o1
  659.     cmp    %o0,%o1
  660.     bne    Label_13
  661.     nop
  662. !   goto Label_14
  663.     ba    Label_14
  664.     nop
  665. !   Label_13:
  666. Label_13:
  667. ! THEN...
  668. ! WRITE STMT...
  669. !   writeString str16
  670.     sethi    %hi(str16),%o0
  671.     call    printf
  672.     or    %o0,%lo(str16),%o0
  673. !   writeNewline
  674.     sethi    %hi(strNL),%o0
  675.     call    printf
  676.     or    %o0,%lo(strNL),%o0
  677. ! END IF...
  678. !   Label_14:
  679. Label_14:
  680. ! WRITE STMT...
  681. !   writeString str17
  682.     sethi    %hi(str17),%o0
  683.     call    printf
  684.     or    %o0,%lo(str17),%o0
  685. !   writeInt x2
  686.     ld    [%fp+-4],%o1
  687.     sethi    %hi(strInt),%o0
  688.     call    printf
  689.     or    %o0,%lo(strInt),%o0
  690. !   writeNewline
  691.     sethi    %hi(strNL),%o0
  692.     call    printf
  693.     or    %o0,%lo(strNL),%o0
  694. ! IF...
  695. !   if x2 != 402 goto Label_15        (integer)
  696.     ld    [%fp+-4],%o0
  697.     set    402,%o1
  698.     cmp    %o0,%o1
  699.     bne    Label_15
  700.     nop
  701. !   goto Label_16
  702.     ba    Label_16
  703.     nop
  704. !   Label_15:
  705. Label_15:
  706. ! THEN...
  707. ! WRITE STMT...
  708. !   writeString str18
  709.     sethi    %hi(str18),%o0
  710.     call    printf
  711.     or    %o0,%lo(str18),%o0
  712. !   writeNewline
  713.     sethi    %hi(strNL),%o0
  714.     call    printf
  715.     or    %o0,%lo(strNL),%o0
  716. ! END IF...
  717. !   Label_16:
  718. Label_16:
  719. ! WRITE STMT...
  720. !   writeString str19
  721.     sethi    %hi(str19),%o0
  722.     call    printf
  723.     or    %o0,%lo(str19),%o0
  724. !   writeInt x3
  725.     set    display0,%o1
  726.     ld    [%o1],%o1
  727.     ld    [%o1+-12],%o1
  728.     sethi    %hi(strInt),%o0
  729.     call    printf
  730.     or    %o0,%lo(strInt),%o0
  731. !   writeNewline
  732.     sethi    %hi(strNL),%o0
  733.     call    printf
  734.     or    %o0,%lo(strNL),%o0
  735. ! IF...
  736. !   if x3 != 302 goto Label_17        (integer)
  737.     set    display0,%o0
  738.     ld    [%o0],%o0
  739.     ld    [%o0+-12],%o0
  740.     set    302,%o1
  741.     cmp    %o0,%o1
  742.     bne    Label_17
  743.     nop
  744. !   goto Label_18
  745.     ba    Label_18
  746.     nop
  747. !   Label_17:
  748. Label_17:
  749. ! THEN...
  750. ! WRITE STMT...
  751. !   writeString str20
  752.     sethi    %hi(str20),%o0
  753.     call    printf
  754.     or    %o0,%lo(str20),%o0
  755. !   writeNewline
  756.     sethi    %hi(strNL),%o0
  757.     call    printf
  758.     or    %o0,%lo(strNL),%o0
  759. ! END IF...
  760. !   Label_18:
  761. Label_18:
  762. ! WRITE STMT...
  763. !   writeString str21
  764.     sethi    %hi(str21),%o0
  765.     call    printf
  766.     or    %o0,%lo(str21),%o0
  767. !   writeInt y1
  768.     ld    [%fp+-8],%o1
  769.     sethi    %hi(strInt),%o0
  770.     call    printf
  771.     or    %o0,%lo(strInt),%o0
  772. !   writeNewline
  773.     sethi    %hi(strNL),%o0
  774.     call    printf
  775.     or    %o0,%lo(strNL),%o0
  776. ! IF...
  777. !   if y1 != 502 goto Label_19        (integer)
  778.     ld    [%fp+-8],%o0
  779.     set    502,%o1
  780.     cmp    %o0,%o1
  781.     bne    Label_19
  782.     nop
  783. !   goto Label_20
  784.     ba    Label_20
  785.     nop
  786. !   Label_19:
  787. Label_19:
  788. ! THEN...
  789. ! WRITE STMT...
  790. !   writeString str22
  791.     sethi    %hi(str22),%o0
  792.     call    printf
  793.     or    %o0,%lo(str22),%o0
  794. !   writeNewline
  795.     sethi    %hi(strNL),%o0
  796.     call    printf
  797.     or    %o0,%lo(strNL),%o0
  798. ! END IF...
  799. !   Label_20:
  800. Label_20:
  801. ! WRITE STMT...
  802. !   writeString str23
  803.     sethi    %hi(str23),%o0
  804.     call    printf
  805.     or    %o0,%lo(str23),%o0
  806. !   writeInt y2
  807.     ld    [%fp+-12],%o1
  808.     sethi    %hi(strInt),%o0
  809.     call    printf
  810.     or    %o0,%lo(strInt),%o0
  811. !   writeNewline
  812.     sethi    %hi(strNL),%o0
  813.     call    printf
  814.     or    %o0,%lo(strNL),%o0
  815. ! IF...
  816. !   if y2 != 601 goto Label_21        (integer)
  817.     ld    [%fp+-12],%o0
  818.     set    601,%o1
  819.     cmp    %o0,%o1
  820.     bne    Label_21
  821.     nop
  822. !   goto Label_22
  823.     ba    Label_22
  824.     nop
  825. !   Label_21:
  826. Label_21:
  827. ! THEN...
  828. ! WRITE STMT...
  829. !   writeString str24
  830.     sethi    %hi(str24),%o0
  831.     call    printf
  832.     or    %o0,%lo(str24),%o0
  833. !   writeNewline
  834.     sethi    %hi(strNL),%o0
  835.     call    printf
  836.     or    %o0,%lo(strNL),%o0
  837. ! END IF...
  838. !   Label_22:
  839. Label_22:
  840. ! WRITE STMT...
  841. !   writeString str25
  842.     sethi    %hi(str25),%o0
  843.     call    printf
  844.     or    %o0,%lo(str25),%o0
  845. !   writeInt a
  846.     set    display0,%o1
  847.     ld    [%o1],%o1
  848.     ld    [%o1+-16],%o1
  849.     sethi    %hi(strInt),%o0
  850.     call    printf
  851.     or    %o0,%lo(strInt),%o0
  852. !   writeNewline
  853.     sethi    %hi(strNL),%o0
  854.     call    printf
  855.     or    %o0,%lo(strNL),%o0
  856. ! IF...
  857. !   if a != 1003 goto Label_23        (integer)
  858.     set    display0,%o0
  859.     ld    [%o0],%o0
  860.     ld    [%o0+-16],%o0
  861.     set    1003,%o1
  862.     cmp    %o0,%o1
  863.     bne    Label_23
  864.     nop
  865. !   goto Label_24
  866.     ba    Label_24
  867.     nop
  868. !   Label_23:
  869. Label_23:
  870. ! THEN...
  871. ! WRITE STMT...
  872. !   writeString str26
  873.     sethi    %hi(str26),%o0
  874.     call    printf
  875.     or    %o0,%lo(str26),%o0
  876. !   writeNewline
  877.     sethi    %hi(strNL),%o0
  878.     call    printf
  879.     or    %o0,%lo(strNL),%o0
  880. ! END IF...
  881. !   Label_24:
  882. Label_24:
  883. ! WRITE STMT...
  884. !   writeString str27
  885.     sethi    %hi(str27),%o0
  886.     call    printf
  887.     or    %o0,%lo(str27),%o0
  888. !   writeInt b
  889.     ld    [%fp+68],%o1
  890.     sethi    %hi(strInt),%o0
  891.     call    printf
  892.     or    %o0,%lo(strInt),%o0
  893. !   writeNewline
  894.     sethi    %hi(strNL),%o0
  895.     call    printf
  896.     or    %o0,%lo(strNL),%o0
  897. ! IF...
  898. !   if b != 1302 goto Label_25        (integer)
  899.     ld    [%fp+68],%o0
  900.     set    1302,%o1
  901.     cmp    %o0,%o1
  902.     bne    Label_25
  903.     nop
  904. !   goto Label_26
  905.     ba    Label_26
  906.     nop
  907. !   Label_25:
  908. Label_25:
  909. ! THEN...
  910. ! WRITE STMT...
  911. !   writeString str28
  912.     sethi    %hi(str28),%o0
  913.     call    printf
  914.     or    %o0,%lo(str28),%o0
  915. !   writeNewline
  916.     sethi    %hi(strNL),%o0
  917.     call    printf
  918.     or    %o0,%lo(strNL),%o0
  919. ! END IF...
  920. !   Label_26:
  921. Label_26:
  922. ! WRITE STMT...
  923. !   writeString str29
  924.     sethi    %hi(str29),%o0
  925.     call    printf
  926.     or    %o0,%lo(str29),%o0
  927. !   writeInt c
  928.     ld    [%fp+72],%o1
  929.     sethi    %hi(strInt),%o0
  930.     call    printf
  931.     or    %o0,%lo(strInt),%o0
  932. !   writeNewline
  933.     sethi    %hi(strNL),%o0
  934.     call    printf
  935.     or    %o0,%lo(strNL),%o0
  936. ! IF...
  937. !   if c != 1401 goto Label_27        (integer)
  938.     ld    [%fp+72],%o0
  939.     set    1401,%o1
  940.     cmp    %o0,%o1
  941.     bne    Label_27
  942.     nop
  943. !   goto Label_28
  944.     ba    Label_28
  945.     nop
  946. !   Label_27:
  947. Label_27:
  948. ! THEN...
  949. ! WRITE STMT...
  950. !   writeString str30
  951.     sethi    %hi(str30),%o0
  952.     call    printf
  953.     or    %o0,%lo(str30),%o0
  954. !   writeNewline
  955.     sethi    %hi(strNL),%o0
  956.     call    printf
  957.     or    %o0,%lo(strNL),%o0
  958. ! END IF...
  959. !   Label_28:
  960. Label_28:
  961. ! WRITE STMT...
  962. !   writeString str31
  963.     sethi    %hi(str31),%o0
  964.     call    printf
  965.     or    %o0,%lo(str31),%o0
  966. !   writeInt d
  967.     set    display0,%o1
  968.     ld    [%o1],%o1
  969.     ld    [%o1+-24],%o1
  970.     sethi    %hi(strInt),%o0
  971.     call    printf
  972.     or    %o0,%lo(strInt),%o0
  973. !   writeNewline
  974.     sethi    %hi(strNL),%o0
  975.     call    printf
  976.     or    %o0,%lo(strNL),%o0
  977. ! IF...
  978. !   if d != 1202 goto Label_29        (integer)
  979.     set    display0,%o0
  980.     ld    [%o0],%o0
  981.     ld    [%o0+-24],%o0
  982.     set    1202,%o1
  983.     cmp    %o0,%o1
  984.     bne    Label_29
  985.     nop
  986. !   goto Label_30
  987.     ba    Label_30
  988.     nop
  989. !   Label_29:
  990. Label_29:
  991. ! THEN...
  992. ! WRITE STMT...
  993. !   writeString str32
  994.     sethi    %hi(str32),%o0
  995.     call    printf
  996.     or    %o0,%lo(str32),%o0
  997. !   writeNewline
  998.     sethi    %hi(strNL),%o0
  999.     call    printf
  1000.     or    %o0,%lo(strNL),%o0
  1001. ! END IF...
  1002. !   Label_30:
  1003. Label_30:
  1004. ! RETURN...
  1005. !   returnVoid
  1006.     set    display1,%o0
  1007.     ld    [%fp+64],%o1
  1008.     st    %o1,[%o0]
  1009.     ret
  1010.     restore
  1011. ! PROCEDURE...
  1012. !   procEntry p2_foo2,lexLev=2,frameSize=144
  1013. p2_foo2:    save    %sp,-144,%sp
  1014.     set    display2,%o0
  1015.     ld    [%o0],%o1
  1016.     st    %o1,[%fp+64]
  1017.     st    %fp,[%o0]
  1018. !   formal 1,c
  1019. !   formal 2,d
  1020. ! VAR INITIALIZATION...
  1021. !   x3 := 700
  1022.     set    700,%o0
  1023.     st    %o0,[%fp+-4]
  1024. ! VAR INITIALIZATION...
  1025. !   y2 := 800
  1026.     set    800,%o0
  1027.     st    %o0,[%fp+-8]
  1028. ! VAR INITIALIZATION...
  1029. !   z1 := 900
  1030.     set    900,%o0
  1031.     st    %o0,[%fp+-12]
  1032. ! ASSIGNMENT STMT...
  1033. !   t16 := x1 + 1        (integer)
  1034.     set    display0,%o0
  1035.     ld    [%o0],%o0
  1036.     ld    [%o0+-4],%o0
  1037.     set    1,%o1
  1038.     add    %o0,%o1,%o1
  1039.     st    %o1,[%fp+-16]
  1040. !   x1 := t16
  1041.     ld    [%fp+-16],%o0
  1042.     set    display0,%o1
  1043.     ld    [%o1],%o1
  1044.     st    %o0,[%o1+-4]
  1045. ! ASSIGNMENT STMT...
  1046. !   t17 := x2 + 1        (integer)
  1047.     set    display1,%o0
  1048.     ld    [%o0],%o0
  1049.     ld    [%o0+-4],%o0
  1050.     set    1,%o1
  1051.     add    %o0,%o1,%o1
  1052.     st    %o1,[%fp+-20]
  1053. !   x2 := t17
  1054.     ld    [%fp+-20],%o0
  1055.     set    display1,%o1
  1056.     ld    [%o1],%o1
  1057.     st    %o0,[%o1+-4]
  1058. ! ASSIGNMENT STMT...
  1059. !   t18 := x3 + 1        (integer)
  1060.     ld    [%fp+-4],%o0
  1061.     set    1,%o1
  1062.     add    %o0,%o1,%o1
  1063.     st    %o1,[%fp+-24]
  1064. !   x3 := t18
  1065.     ld    [%fp+-24],%o0
  1066.     st    %o0,[%fp+-4]
  1067. ! ASSIGNMENT STMT...
  1068. !   t19 := y1 + 1        (integer)
  1069.     set    display1,%o0
  1070.     ld    [%o0],%o0
  1071.     ld    [%o0+-8],%o0
  1072.     set    1,%o1
  1073.     add    %o0,%o1,%o1
  1074.     st    %o1,[%fp+-28]
  1075. !   y1 := t19
  1076.     ld    [%fp+-28],%o0
  1077.     set    display1,%o1
  1078.     ld    [%o1],%o1
  1079.     st    %o0,[%o1+-8]
  1080. ! ASSIGNMENT STMT...
  1081. !   t20 := y2 + 1        (integer)
  1082.     ld    [%fp+-8],%o0
  1083.     set    1,%o1
  1084.     add    %o0,%o1,%o1
  1085.     st    %o1,[%fp+-32]
  1086. !   y2 := t20
  1087.     ld    [%fp+-32],%o0
  1088.     st    %o0,[%fp+-8]
  1089. ! ASSIGNMENT STMT...
  1090. !   t21 := z1 + 1        (integer)
  1091.     ld    [%fp+-12],%o0
  1092.     set    1,%o1
  1093.     add    %o0,%o1,%o1
  1094.     st    %o1,[%fp+-36]
  1095. !   z1 := t21
  1096.     ld    [%fp+-36],%o0
  1097.     st    %o0,[%fp+-12]
  1098. ! ASSIGNMENT STMT...
  1099. !   t22 := a + 1        (integer)
  1100.     set    display0,%o0
  1101.     ld    [%o0],%o0
  1102.     ld    [%o0+-16],%o0
  1103.     set    1,%o1
  1104.     add    %o0,%o1,%o1
  1105.     st    %o1,[%fp+-40]
  1106. !   a := t22
  1107.     ld    [%fp+-40],%o0
  1108.     set    display0,%o1
  1109.     ld    [%o1],%o1
  1110.     st    %o0,[%o1+-16]
  1111. ! ASSIGNMENT STMT...
  1112. !   t23 := b + 1        (integer)
  1113.     set    display1,%o0
  1114.     ld    [%o0],%o0
  1115.     ld    [%o0+68],%o0
  1116.     set    1,%o1
  1117.     add    %o0,%o1,%o1
  1118.     st    %o1,[%fp+-44]
  1119. !   b := t23
  1120.     ld    [%fp+-44],%o0
  1121.     set    display1,%o1
  1122.     ld    [%o1],%o1
  1123.     st    %o0,[%o1+68]
  1124. ! ASSIGNMENT STMT...
  1125. !   t24 := c + 1        (integer)
  1126.     ld    [%fp+68],%o0
  1127.     set    1,%o1
  1128.     add    %o0,%o1,%o1
  1129.     st    %o1,[%fp+-48]
  1130. !   c := t24
  1131.     ld    [%fp+-48],%o0
  1132.     st    %o0,[%fp+68]
  1133. ! ASSIGNMENT STMT...
  1134. !   t25 := d + 1        (integer)
  1135.     ld    [%fp+72],%o0
  1136.     set    1,%o1
  1137.     add    %o0,%o1,%o1
  1138.     st    %o1,[%fp+-52]
  1139. !   d := t25
  1140.     ld    [%fp+-52],%o0
  1141.     st    %o0,[%fp+72]
  1142. ! WRITE STMT...
  1143. !   writeString str33
  1144.     sethi    %hi(str33),%o0
  1145.     call    printf
  1146.     or    %o0,%lo(str33),%o0
  1147. !   writeNewline
  1148.     sethi    %hi(strNL),%o0
  1149.     call    printf
  1150.     or    %o0,%lo(strNL),%o0
  1151. ! WRITE STMT...
  1152. !   writeString str34
  1153.     sethi    %hi(str34),%o0
  1154.     call    printf
  1155.     or    %o0,%lo(str34),%o0
  1156. !   writeInt x1
  1157.     set    display0,%o1
  1158.     ld    [%o1],%o1
  1159.     ld    [%o1+-4],%o1
  1160.     sethi    %hi(strInt),%o0
  1161.     call    printf
  1162.     or    %o0,%lo(strInt),%o0
  1163. !   writeNewline
  1164.     sethi    %hi(strNL),%o0
  1165.     call    printf
  1166.     or    %o0,%lo(strNL),%o0
  1167. ! IF...
  1168. !   if x1 != 103 goto Label_31        (integer)
  1169.     set    display0,%o0
  1170.     ld    [%o0],%o0
  1171.     ld    [%o0+-4],%o0
  1172.     set    103,%o1
  1173.     cmp    %o0,%o1
  1174.     bne    Label_31
  1175.     nop
  1176. !   goto Label_32
  1177.     ba    Label_32
  1178.     nop
  1179. !   Label_31:
  1180. Label_31:
  1181. ! THEN...
  1182. ! WRITE STMT...
  1183. !   writeString str35
  1184.     sethi    %hi(str35),%o0
  1185.     call    printf
  1186.     or    %o0,%lo(str35),%o0
  1187. !   writeNewline
  1188.     sethi    %hi(strNL),%o0
  1189.     call    printf
  1190.     or    %o0,%lo(strNL),%o0
  1191. ! END IF...
  1192. !   Label_32:
  1193. Label_32:
  1194. ! WRITE STMT...
  1195. !   writeString str36
  1196.     sethi    %hi(str36),%o0
  1197.     call    printf
  1198.     or    %o0,%lo(str36),%o0
  1199. !   writeInt x2
  1200.     set    display1,%o1
  1201.     ld    [%o1],%o1
  1202.     ld    [%o1+-4],%o1
  1203.     sethi    %hi(strInt),%o0
  1204.     call    printf
  1205.     or    %o0,%lo(strInt),%o0
  1206. !   writeNewline
  1207.     sethi    %hi(strNL),%o0
  1208.     call    printf
  1209.     or    %o0,%lo(strNL),%o0
  1210. ! IF...
  1211. !   if x2 != 402 goto Label_33        (integer)
  1212.     set    display1,%o0
  1213.     ld    [%o0],%o0
  1214.     ld    [%o0+-4],%o0
  1215.     set    402,%o1
  1216.     cmp    %o0,%o1
  1217.     bne    Label_33
  1218.     nop
  1219. !   goto Label_34
  1220.     ba    Label_34
  1221.     nop
  1222. !   Label_33:
  1223. Label_33:
  1224. ! THEN...
  1225. ! WRITE STMT...
  1226. !   writeString str37
  1227.     sethi    %hi(str37),%o0
  1228.     call    printf
  1229.     or    %o0,%lo(str37),%o0
  1230. !   writeNewline
  1231.     sethi    %hi(strNL),%o0
  1232.     call    printf
  1233.     or    %o0,%lo(strNL),%o0
  1234. ! END IF...
  1235. !   Label_34:
  1236. Label_34:
  1237. ! WRITE STMT...
  1238. !   writeString str38
  1239.     sethi    %hi(str38),%o0
  1240.     call    printf
  1241.     or    %o0,%lo(str38),%o0
  1242. !   writeInt x3
  1243.     ld    [%fp+-4],%o1
  1244.     sethi    %hi(strInt),%o0
  1245.     call    printf
  1246.     or    %o0,%lo(strInt),%o0
  1247. !   writeNewline
  1248.     sethi    %hi(strNL),%o0
  1249.     call    printf
  1250.     or    %o0,%lo(strNL),%o0
  1251. ! IF...
  1252. !   if x3 != 701 goto Label_35        (integer)
  1253.     ld    [%fp+-4],%o0
  1254.     set    701,%o1
  1255.     cmp    %o0,%o1
  1256.     bne    Label_35
  1257.     nop
  1258. !   goto Label_36
  1259.     ba    Label_36
  1260.     nop
  1261. !   Label_35:
  1262. Label_35:
  1263. ! THEN...
  1264. ! WRITE STMT...
  1265. !   writeString str39
  1266.     sethi    %hi(str39),%o0
  1267.     call    printf
  1268.     or    %o0,%lo(str39),%o0
  1269. !   writeNewline
  1270.     sethi    %hi(strNL),%o0
  1271.     call    printf
  1272.     or    %o0,%lo(strNL),%o0
  1273. ! END IF...
  1274. !   Label_36:
  1275. Label_36:
  1276. ! WRITE STMT...
  1277. !   writeString str40
  1278.     sethi    %hi(str40),%o0
  1279.     call    printf
  1280.     or    %o0,%lo(str40),%o0
  1281. !   writeInt y1
  1282.     set    display1,%o1
  1283.     ld    [%o1],%o1
  1284.     ld    [%o1+-8],%o1
  1285.     sethi    %hi(strInt),%o0
  1286.     call    printf
  1287.     or    %o0,%lo(strInt),%o0
  1288. !   writeNewline
  1289.     sethi    %hi(strNL),%o0
  1290.     call    printf
  1291.     or    %o0,%lo(strNL),%o0
  1292. ! IF...
  1293. !   if y1 != 502 goto Label_37        (integer)
  1294.     set    display1,%o0
  1295.     ld    [%o0],%o0
  1296.     ld    [%o0+-8],%o0
  1297.     set    502,%o1
  1298.     cmp    %o0,%o1
  1299.     bne    Label_37
  1300.     nop
  1301. !   goto Label_38
  1302.     ba    Label_38
  1303.     nop
  1304. !   Label_37:
  1305. Label_37:
  1306. ! THEN...
  1307. ! WRITE STMT...
  1308. !   writeString str41
  1309.     sethi    %hi(str41),%o0
  1310.     call    printf
  1311.     or    %o0,%lo(str41),%o0
  1312. !   writeNewline
  1313.     sethi    %hi(strNL),%o0
  1314.     call    printf
  1315.     or    %o0,%lo(strNL),%o0
  1316. ! END IF...
  1317. !   Label_38:
  1318. Label_38:
  1319. ! WRITE STMT...
  1320. !   writeString str42
  1321.     sethi    %hi(str42),%o0
  1322.     call    printf
  1323.     or    %o0,%lo(str42),%o0
  1324. !   writeInt y2
  1325.     ld    [%fp+-8],%o1
  1326.     sethi    %hi(strInt),%o0
  1327.     call    printf
  1328.     or    %o0,%lo(strInt),%o0
  1329. !   writeNewline
  1330.     sethi    %hi(strNL),%o0
  1331.     call    printf
  1332.     or    %o0,%lo(strNL),%o0
  1333. ! IF...
  1334. !   if y2 != 801 goto Label_39        (integer)
  1335.     ld    [%fp+-8],%o0
  1336.     set    801,%o1
  1337.     cmp    %o0,%o1
  1338.     bne    Label_39
  1339.     nop
  1340. !   goto Label_40
  1341.     ba    Label_40
  1342.     nop
  1343. !   Label_39:
  1344. Label_39:
  1345. ! THEN...
  1346. ! WRITE STMT...
  1347. !   writeString str43
  1348.     sethi    %hi(str43),%o0
  1349.     call    printf
  1350.     or    %o0,%lo(str43),%o0
  1351. !   writeNewline
  1352.     sethi    %hi(strNL),%o0
  1353.     call    printf
  1354.     or    %o0,%lo(strNL),%o0
  1355. ! END IF...
  1356. !   Label_40:
  1357. Label_40:
  1358. ! WRITE STMT...
  1359. !   writeString str44
  1360.     sethi    %hi(str44),%o0
  1361.     call    printf
  1362.     or    %o0,%lo(str44),%o0
  1363. !   writeInt z1
  1364.     ld    [%fp+-12],%o1
  1365.     sethi    %hi(strInt),%o0
  1366.     call    printf
  1367.     or    %o0,%lo(strInt),%o0
  1368. !   writeNewline
  1369.     sethi    %hi(strNL),%o0
  1370.     call    printf
  1371.     or    %o0,%lo(strNL),%o0
  1372. ! IF...
  1373. !   if z1 != 901 goto Label_41        (integer)
  1374.     ld    [%fp+-12],%o0
  1375.     set    901,%o1
  1376.     cmp    %o0,%o1
  1377.     bne    Label_41
  1378.     nop
  1379. !   goto Label_42
  1380.     ba    Label_42
  1381.     nop
  1382. !   Label_41:
  1383. Label_41:
  1384. ! THEN...
  1385. ! WRITE STMT...
  1386. !   writeString str45
  1387.     sethi    %hi(str45),%o0
  1388.     call    printf
  1389.     or    %o0,%lo(str45),%o0
  1390. !   writeNewline
  1391.     sethi    %hi(strNL),%o0
  1392.     call    printf
  1393.     or    %o0,%lo(strNL),%o0
  1394. ! END IF...
  1395. !   Label_42:
  1396. Label_42:
  1397. ! WRITE STMT...
  1398. !   writeString str46
  1399.     sethi    %hi(str46),%o0
  1400.     call    printf
  1401.     or    %o0,%lo(str46),%o0
  1402. !   writeInt a
  1403.     set    display0,%o1
  1404.     ld    [%o1],%o1
  1405.     ld    [%o1+-16],%o1
  1406.     sethi    %hi(strInt),%o0
  1407.     call    printf
  1408.     or    %o0,%lo(strInt),%o0
  1409. !   writeNewline
  1410.     sethi    %hi(strNL),%o0
  1411.     call    printf
  1412.     or    %o0,%lo(strNL),%o0
  1413. ! IF...
  1414. !   if a != 1003 goto Label_43        (integer)
  1415.     set    display0,%o0
  1416.     ld    [%o0],%o0
  1417.     ld    [%o0+-16],%o0
  1418.     set    1003,%o1
  1419.     cmp    %o0,%o1
  1420.     bne    Label_43
  1421.     nop
  1422. !   goto Label_44
  1423.     ba    Label_44
  1424.     nop
  1425. !   Label_43:
  1426. Label_43:
  1427. ! THEN...
  1428. ! WRITE STMT...
  1429. !   writeString str47
  1430.     sethi    %hi(str47),%o0
  1431.     call    printf
  1432.     or    %o0,%lo(str47),%o0
  1433. !   writeNewline
  1434.     sethi    %hi(strNL),%o0
  1435.     call    printf
  1436.     or    %o0,%lo(strNL),%o0
  1437. ! END IF...
  1438. !   Label_44:
  1439. Label_44:
  1440. ! WRITE STMT...
  1441. !   writeString str48
  1442.     sethi    %hi(str48),%o0
  1443.     call    printf
  1444.     or    %o0,%lo(str48),%o0
  1445. !   writeInt b
  1446.     set    display1,%o1
  1447.     ld    [%o1],%o1
  1448.     ld    [%o1+68],%o1
  1449.     sethi    %hi(strInt),%o0
  1450.     call    printf
  1451.     or    %o0,%lo(strInt),%o0
  1452. !   writeNewline
  1453.     sethi    %hi(strNL),%o0
  1454.     call    printf
  1455.     or    %o0,%lo(strNL),%o0
  1456. ! IF...
  1457. !   if b != 1302 goto Label_45        (integer)
  1458.     set    display1,%o0
  1459.     ld    [%o0],%o0
  1460.     ld    [%o0+68],%o0
  1461.     set    1302,%o1
  1462.     cmp    %o0,%o1
  1463.     bne    Label_45
  1464.     nop
  1465. !   goto Label_46
  1466.     ba    Label_46
  1467.     nop
  1468. !   Label_45:
  1469. Label_45:
  1470. ! THEN...
  1471. ! WRITE STMT...
  1472. !   writeString str49
  1473.     sethi    %hi(str49),%o0
  1474.     call    printf
  1475.     or    %o0,%lo(str49),%o0
  1476. !   writeNewline
  1477.     sethi    %hi(strNL),%o0
  1478.     call    printf
  1479.     or    %o0,%lo(strNL),%o0
  1480. ! END IF...
  1481. !   Label_46:
  1482. Label_46:
  1483. ! WRITE STMT...
  1484. !   writeString str50
  1485.     sethi    %hi(str50),%o0
  1486.     call    printf
  1487.     or    %o0,%lo(str50),%o0
  1488. !   writeInt c
  1489.     ld    [%fp+68],%o1
  1490.     sethi    %hi(strInt),%o0
  1491.     call    printf
  1492.     or    %o0,%lo(strInt),%o0
  1493. !   writeNewline
  1494.     sethi    %hi(strNL),%o0
  1495.     call    printf
  1496.     or    %o0,%lo(strNL),%o0
  1497. ! IF...
  1498. !   if c != 1501 goto Label_47        (integer)
  1499.     ld    [%fp+68],%o0
  1500.     set    1501,%o1
  1501.     cmp    %o0,%o1
  1502.     bne    Label_47
  1503.     nop
  1504. !   goto Label_48
  1505.     ba    Label_48
  1506.     nop
  1507. !   Label_47:
  1508. Label_47:
  1509. ! THEN...
  1510. ! WRITE STMT...
  1511. !   writeString str51
  1512.     sethi    %hi(str51),%o0
  1513.     call    printf
  1514.     or    %o0,%lo(str51),%o0
  1515. !   writeNewline
  1516.     sethi    %hi(strNL),%o0
  1517.     call    printf
  1518.     or    %o0,%lo(strNL),%o0
  1519. ! END IF...
  1520. !   Label_48:
  1521. Label_48:
  1522. ! WRITE STMT...
  1523. !   writeString str52
  1524.     sethi    %hi(str52),%o0
  1525.     call    printf
  1526.     or    %o0,%lo(str52),%o0
  1527. !   writeInt d
  1528.     ld    [%fp+72],%o1
  1529.     sethi    %hi(strInt),%o0
  1530.     call    printf
  1531.     or    %o0,%lo(strInt),%o0
  1532. !   writeNewline
  1533.     sethi    %hi(strNL),%o0
  1534.     call    printf
  1535.     or    %o0,%lo(strNL),%o0
  1536. ! IF...
  1537. !   if d != 1601 goto Label_49        (integer)
  1538.     ld    [%fp+72],%o0
  1539.     set    1601,%o1
  1540.     cmp    %o0,%o1
  1541.     bne    Label_49
  1542.     nop
  1543. !   goto Label_50
  1544.     ba    Label_50
  1545.     nop
  1546. !   Label_49:
  1547. Label_49:
  1548. ! THEN...
  1549. ! WRITE STMT...
  1550. !   writeString str53
  1551.     sethi    %hi(str53),%o0
  1552.     call    printf
  1553.     or    %o0,%lo(str53),%o0
  1554. !   writeNewline
  1555.     sethi    %hi(strNL),%o0
  1556.     call    printf
  1557.     or    %o0,%lo(strNL),%o0
  1558. ! END IF...
  1559. !   Label_50:
  1560. Label_50:
  1561. ! RETURN...
  1562. !   returnVoid
  1563.     set    display2,%o0
  1564.     ld    [%fp+64],%o1
  1565.     st    %o1,[%o0]
  1566.     ret
  1567.     restore
  1568.