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 / goto2.out.bak < prev    next >
Text File  |  2006-03-05  |  15KB  |  864 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.     .text
  103. str39:    .asciz    "   OK"
  104. str38:    .asciz    "   ERROR"
  105. str37:    .asciz    "   ERROR"
  106. str36:    .asciz    "   OK"
  107. str35:    .asciz    "   ERROR"
  108. str34:    .asciz    "   OK"
  109. str33:    .asciz    "TESTING >=..."
  110. str32:    .asciz    "   ERROR"
  111. str31:    .asciz    "   OK"
  112. str30:    .asciz    "   OK"
  113. str29:    .asciz    "   ERROR"
  114. str28:    .asciz    "   ERROR"
  115. str27:    .asciz    "   OK"
  116. str26:    .asciz    "TESTING <=..."
  117. str25:    .asciz    "   OK"
  118. str24:    .asciz    "   ERROR"
  119. str23:    .asciz    "   ERROR"
  120. str22:    .asciz    "   OK"
  121. str21:    .asciz    "   OK"
  122. str20:    .asciz    "   ERROR"
  123. str19:    .asciz    "TESTING >..."
  124. str18:    .asciz    "   ERROR"
  125. str17:    .asciz    "   OK"
  126. str16:    .asciz    "   OK"
  127. str15:    .asciz    "   ERROR"
  128. str14:    .asciz    "   OK"
  129. str13:    .asciz    "   ERROR"
  130. str12:    .asciz    "TESTING <..."
  131. str11:    .asciz    "   OK"
  132. str10:    .asciz    "   ERROR"
  133. str9:    .asciz    "   ERROR"
  134. str8:    .asciz    "   OK"
  135. str7:    .asciz    "TESTING <>..."
  136. str6:    .asciz    "   ERROR"
  137. str5:    .asciz    "   OK"
  138. str4:    .asciz    "   OK"
  139. str3:    .asciz    "   ERROR"
  140. str2:    .asciz    "TESTING =..."
  141. str1:    .asciz    "SHOULD PRINT ALL OKS AFTER EACH TEST:"
  142.     .align    8
  143. ! MAIN...
  144. !   mainEntry
  145.     .global    main
  146. main:    save    %sp,-104,%sp
  147.     set    display0,%o0
  148.     st    %fp,[%o0]
  149. ! VAR INITIALIZATION...
  150. !   i := 1
  151.     set    1,%o0
  152.     st    %o0,[%fp+-4]
  153. ! VAR INITIALIZATION...
  154. !   j := 2
  155.     set    2,%o0
  156.     st    %o0,[%fp+-8]
  157. ! WRITE STMT...
  158. !   writeString str1
  159.     sethi    %hi(str1),%o0
  160.     call    printf
  161.     or    %o0,%lo(str1),%o0
  162. !   writeNewline
  163.     sethi    %hi(strNL),%o0
  164.     call    printf
  165.     or    %o0,%lo(strNL),%o0
  166. ! WRITE STMT...
  167. !   writeString str2
  168.     sethi    %hi(str2),%o0
  169.     call    printf
  170.     or    %o0,%lo(str2),%o0
  171. !   writeNewline
  172.     sethi    %hi(strNL),%o0
  173.     call    printf
  174.     or    %o0,%lo(strNL),%o0
  175. ! IF...
  176. !   if i = j goto Label_1        (integer)
  177.     ld    [%fp+-4],%o0
  178.     ld    [%fp+-8],%o1
  179.     cmp    %o0,%o1
  180.     be    Label_1
  181.     nop
  182. !   goto Label_2
  183.     ba    Label_2
  184.     nop
  185. !   Label_1:
  186. Label_1:
  187. ! THEN...
  188. ! WRITE STMT...
  189. !   writeString str3
  190.     sethi    %hi(str3),%o0
  191.     call    printf
  192.     or    %o0,%lo(str3),%o0
  193. !   writeNewline
  194.     sethi    %hi(strNL),%o0
  195.     call    printf
  196.     or    %o0,%lo(strNL),%o0
  197. !   goto Label_3
  198.     ba    Label_3
  199.     nop
  200. !   Label_2:
  201. Label_2:
  202. ! ELSE...
  203. ! WRITE STMT...
  204. !   writeString str4
  205.     sethi    %hi(str4),%o0
  206.     call    printf
  207.     or    %o0,%lo(str4),%o0
  208. !   writeNewline
  209.     sethi    %hi(strNL),%o0
  210.     call    printf
  211.     or    %o0,%lo(strNL),%o0
  212. ! END IF...
  213. !   Label_3:
  214. Label_3:
  215. ! IF...
  216. !   if i = i goto Label_4        (integer)
  217.     ld    [%fp+-4],%o0
  218.     ld    [%fp+-4],%o1
  219.     cmp    %o0,%o1
  220.     be    Label_4
  221.     nop
  222. !   goto Label_5
  223.     ba    Label_5
  224.     nop
  225. !   Label_4:
  226. Label_4:
  227. ! THEN...
  228. ! WRITE STMT...
  229. !   writeString str5
  230.     sethi    %hi(str5),%o0
  231.     call    printf
  232.     or    %o0,%lo(str5),%o0
  233. !   writeNewline
  234.     sethi    %hi(strNL),%o0
  235.     call    printf
  236.     or    %o0,%lo(strNL),%o0
  237. !   goto Label_6
  238.     ba    Label_6
  239.     nop
  240. !   Label_5:
  241. Label_5:
  242. ! ELSE...
  243. ! WRITE STMT...
  244. !   writeString str6
  245.     sethi    %hi(str6),%o0
  246.     call    printf
  247.     or    %o0,%lo(str6),%o0
  248. !   writeNewline
  249.     sethi    %hi(strNL),%o0
  250.     call    printf
  251.     or    %o0,%lo(strNL),%o0
  252. ! END IF...
  253. !   Label_6:
  254. Label_6:
  255. ! WRITE STMT...
  256. !   writeString str7
  257.     sethi    %hi(str7),%o0
  258.     call    printf
  259.     or    %o0,%lo(str7),%o0
  260. !   writeNewline
  261.     sethi    %hi(strNL),%o0
  262.     call    printf
  263.     or    %o0,%lo(strNL),%o0
  264. ! IF...
  265. !   if i != j goto Label_7        (integer)
  266.     ld    [%fp+-4],%o0
  267.     ld    [%fp+-8],%o1
  268.     cmp    %o0,%o1
  269.     bne    Label_7
  270.     nop
  271. !   goto Label_8
  272.     ba    Label_8
  273.     nop
  274. !   Label_7:
  275. Label_7:
  276. ! THEN...
  277. ! WRITE STMT...
  278. !   writeString str8
  279.     sethi    %hi(str8),%o0
  280.     call    printf
  281.     or    %o0,%lo(str8),%o0
  282. !   writeNewline
  283.     sethi    %hi(strNL),%o0
  284.     call    printf
  285.     or    %o0,%lo(strNL),%o0
  286. !   goto Label_9
  287.     ba    Label_9
  288.     nop
  289. !   Label_8:
  290. Label_8:
  291. ! ELSE...
  292. ! WRITE STMT...
  293. !   writeString str9
  294.     sethi    %hi(str9),%o0
  295.     call    printf
  296.     or    %o0,%lo(str9),%o0
  297. !   writeNewline
  298.     sethi    %hi(strNL),%o0
  299.     call    printf
  300.     or    %o0,%lo(strNL),%o0
  301. ! END IF...
  302. !   Label_9:
  303. Label_9:
  304. ! IF...
  305. !   if i != i goto Label_10        (integer)
  306.     ld    [%fp+-4],%o0
  307.     ld    [%fp+-4],%o1
  308.     cmp    %o0,%o1
  309.     bne    Label_10
  310.     nop
  311. !   goto Label_11
  312.     ba    Label_11
  313.     nop
  314. !   Label_10:
  315. Label_10:
  316. ! THEN...
  317. ! WRITE STMT...
  318. !   writeString str10
  319.     sethi    %hi(str10),%o0
  320.     call    printf
  321.     or    %o0,%lo(str10),%o0
  322. !   writeNewline
  323.     sethi    %hi(strNL),%o0
  324.     call    printf
  325.     or    %o0,%lo(strNL),%o0
  326. !   goto Label_12
  327.     ba    Label_12
  328.     nop
  329. !   Label_11:
  330. Label_11:
  331. ! ELSE...
  332. ! WRITE STMT...
  333. !   writeString str11
  334.     sethi    %hi(str11),%o0
  335.     call    printf
  336.     or    %o0,%lo(str11),%o0
  337. !   writeNewline
  338.     sethi    %hi(strNL),%o0
  339.     call    printf
  340.     or    %o0,%lo(strNL),%o0
  341. ! END IF...
  342. !   Label_12:
  343. Label_12:
  344. ! WRITE STMT...
  345. !   writeString str12
  346.     sethi    %hi(str12),%o0
  347.     call    printf
  348.     or    %o0,%lo(str12),%o0
  349. !   writeNewline
  350.     sethi    %hi(strNL),%o0
  351.     call    printf
  352.     or    %o0,%lo(strNL),%o0
  353. ! IF...
  354. !   if i < i goto Label_13        (integer)
  355.     ld    [%fp+-4],%o0
  356.     ld    [%fp+-4],%o1
  357.     cmp    %o0,%o1
  358.     bl    Label_13
  359.     nop
  360. !   goto Label_14
  361.     ba    Label_14
  362.     nop
  363. !   Label_13:
  364. Label_13:
  365. ! THEN...
  366. ! WRITE STMT...
  367. !   writeString str13
  368.     sethi    %hi(str13),%o0
  369.     call    printf
  370.     or    %o0,%lo(str13),%o0
  371. !   writeNewline
  372.     sethi    %hi(strNL),%o0
  373.     call    printf
  374.     or    %o0,%lo(strNL),%o0
  375. !   goto Label_15
  376.     ba    Label_15
  377.     nop
  378. !   Label_14:
  379. Label_14:
  380. ! ELSE...
  381. ! WRITE STMT...
  382. !   writeString str14
  383.     sethi    %hi(str14),%o0
  384.     call    printf
  385.     or    %o0,%lo(str14),%o0
  386. !   writeNewline
  387.     sethi    %hi(strNL),%o0
  388.     call    printf
  389.     or    %o0,%lo(strNL),%o0
  390. ! END IF...
  391. !   Label_15:
  392. Label_15:
  393. ! IF...
  394. !   if j < i goto Label_16        (integer)
  395.     ld    [%fp+-8],%o0
  396.     ld    [%fp+-4],%o1
  397.     cmp    %o0,%o1
  398.     bl    Label_16
  399.     nop
  400. !   goto Label_17
  401.     ba    Label_17
  402.     nop
  403. !   Label_16:
  404. Label_16:
  405. ! THEN...
  406. ! WRITE STMT...
  407. !   writeString str15
  408.     sethi    %hi(str15),%o0
  409.     call    printf
  410.     or    %o0,%lo(str15),%o0
  411. !   writeNewline
  412.     sethi    %hi(strNL),%o0
  413.     call    printf
  414.     or    %o0,%lo(strNL),%o0
  415. !   goto Label_18
  416.     ba    Label_18
  417.     nop
  418. !   Label_17:
  419. Label_17:
  420. ! ELSE...
  421. ! WRITE STMT...
  422. !   writeString str16
  423.     sethi    %hi(str16),%o0
  424.     call    printf
  425.     or    %o0,%lo(str16),%o0
  426. !   writeNewline
  427.     sethi    %hi(strNL),%o0
  428.     call    printf
  429.     or    %o0,%lo(strNL),%o0
  430. ! END IF...
  431. !   Label_18:
  432. Label_18:
  433. ! IF...
  434. !   if i < j goto Label_19        (integer)
  435.     ld    [%fp+-4],%o0
  436.     ld    [%fp+-8],%o1
  437.     cmp    %o0,%o1
  438.     bl    Label_19
  439.     nop
  440. !   goto Label_20
  441.     ba    Label_20
  442.     nop
  443. !   Label_19:
  444. Label_19:
  445. ! THEN...
  446. ! WRITE STMT...
  447. !   writeString str17
  448.     sethi    %hi(str17),%o0
  449.     call    printf
  450.     or    %o0,%lo(str17),%o0
  451. !   writeNewline
  452.     sethi    %hi(strNL),%o0
  453.     call    printf
  454.     or    %o0,%lo(strNL),%o0
  455. !   goto Label_21
  456.     ba    Label_21
  457.     nop
  458. !   Label_20:
  459. Label_20:
  460. ! ELSE...
  461. ! WRITE STMT...
  462. !   writeString str18
  463.     sethi    %hi(str18),%o0
  464.     call    printf
  465.     or    %o0,%lo(str18),%o0
  466. !   writeNewline
  467.     sethi    %hi(strNL),%o0
  468.     call    printf
  469.     or    %o0,%lo(strNL),%o0
  470. ! END IF...
  471. !   Label_21:
  472. Label_21:
  473. ! WRITE STMT...
  474. !   writeString str19
  475.     sethi    %hi(str19),%o0
  476.     call    printf
  477.     or    %o0,%lo(str19),%o0
  478. !   writeNewline
  479.     sethi    %hi(strNL),%o0
  480.     call    printf
  481.     or    %o0,%lo(strNL),%o0
  482. ! IF...
  483. !   if i > i goto Label_22        (integer)
  484.     ld    [%fp+-4],%o0
  485.     ld    [%fp+-4],%o1
  486.     cmp    %o0,%o1
  487.     bg    Label_22
  488.     nop
  489. !   goto Label_23
  490.     ba    Label_23
  491.     nop
  492. !   Label_22:
  493. Label_22:
  494. ! THEN...
  495. ! WRITE STMT...
  496. !   writeString str20
  497.     sethi    %hi(str20),%o0
  498.     call    printf
  499.     or    %o0,%lo(str20),%o0
  500. !   writeNewline
  501.     sethi    %hi(strNL),%o0
  502.     call    printf
  503.     or    %o0,%lo(strNL),%o0
  504. !   goto Label_24
  505.     ba    Label_24
  506.     nop
  507. !   Label_23:
  508. Label_23:
  509. ! ELSE...
  510. ! WRITE STMT...
  511. !   writeString str21
  512.     sethi    %hi(str21),%o0
  513.     call    printf
  514.     or    %o0,%lo(str21),%o0
  515. !   writeNewline
  516.     sethi    %hi(strNL),%o0
  517.     call    printf
  518.     or    %o0,%lo(strNL),%o0
  519. ! END IF...
  520. !   Label_24:
  521. Label_24:
  522. ! IF...
  523. !   if j > i goto Label_25        (integer)
  524.     ld    [%fp+-8],%o0
  525.     ld    [%fp+-4],%o1
  526.     cmp    %o0,%o1
  527.     bg    Label_25
  528.     nop
  529. !   goto Label_26
  530.     ba    Label_26
  531.     nop
  532. !   Label_25:
  533. Label_25:
  534. ! THEN...
  535. ! WRITE STMT...
  536. !   writeString str22
  537.     sethi    %hi(str22),%o0
  538.     call    printf
  539.     or    %o0,%lo(str22),%o0
  540. !   writeNewline
  541.     sethi    %hi(strNL),%o0
  542.     call    printf
  543.     or    %o0,%lo(strNL),%o0
  544. !   goto Label_27
  545.     ba    Label_27
  546.     nop
  547. !   Label_26:
  548. Label_26:
  549. ! ELSE...
  550. ! WRITE STMT...
  551. !   writeString str23
  552.     sethi    %hi(str23),%o0
  553.     call    printf
  554.     or    %o0,%lo(str23),%o0
  555. !   writeNewline
  556.     sethi    %hi(strNL),%o0
  557.     call    printf
  558.     or    %o0,%lo(strNL),%o0
  559. ! END IF...
  560. !   Label_27:
  561. Label_27:
  562. ! IF...
  563. !   if i > j goto Label_28        (integer)
  564.     ld    [%fp+-4],%o0
  565.     ld    [%fp+-8],%o1
  566.     cmp    %o0,%o1
  567.     bg    Label_28
  568.     nop
  569. !   goto Label_29
  570.     ba    Label_29
  571.     nop
  572. !   Label_28:
  573. Label_28:
  574. ! THEN...
  575. ! WRITE STMT...
  576. !   writeString str24
  577.     sethi    %hi(str24),%o0
  578.     call    printf
  579.     or    %o0,%lo(str24),%o0
  580. !   writeNewline
  581.     sethi    %hi(strNL),%o0
  582.     call    printf
  583.     or    %o0,%lo(strNL),%o0
  584. !   goto Label_30
  585.     ba    Label_30
  586.     nop
  587. !   Label_29:
  588. Label_29:
  589. ! ELSE...
  590. ! WRITE STMT...
  591. !   writeString str25
  592.     sethi    %hi(str25),%o0
  593.     call    printf
  594.     or    %o0,%lo(str25),%o0
  595. !   writeNewline
  596.     sethi    %hi(strNL),%o0
  597.     call    printf
  598.     or    %o0,%lo(strNL),%o0
  599. ! END IF...
  600. !   Label_30:
  601. Label_30:
  602. ! WRITE STMT...
  603. !   writeString str26
  604.     sethi    %hi(str26),%o0
  605.     call    printf
  606.     or    %o0,%lo(str26),%o0
  607. !   writeNewline
  608.     sethi    %hi(strNL),%o0
  609.     call    printf
  610.     or    %o0,%lo(strNL),%o0
  611. ! IF...
  612. !   if i <= i goto Label_31        (integer)
  613.     ld    [%fp+-4],%o0
  614.     ld    [%fp+-4],%o1
  615.     cmp    %o0,%o1
  616.     ble    Label_31
  617.     nop
  618. !   goto Label_32
  619.     ba    Label_32
  620.     nop
  621. !   Label_31:
  622. Label_31:
  623. ! THEN...
  624. ! WRITE STMT...
  625. !   writeString str27
  626.     sethi    %hi(str27),%o0
  627.     call    printf
  628.     or    %o0,%lo(str27),%o0
  629. !   writeNewline
  630.     sethi    %hi(strNL),%o0
  631.     call    printf
  632.     or    %o0,%lo(strNL),%o0
  633. !   goto Label_33
  634.     ba    Label_33
  635.     nop
  636. !   Label_32:
  637. Label_32:
  638. ! ELSE...
  639. ! WRITE STMT...
  640. !   writeString str28
  641.     sethi    %hi(str28),%o0
  642.     call    printf
  643.     or    %o0,%lo(str28),%o0
  644. !   writeNewline
  645.     sethi    %hi(strNL),%o0
  646.     call    printf
  647.     or    %o0,%lo(strNL),%o0
  648. ! END IF...
  649. !   Label_33:
  650. Label_33:
  651. ! IF...
  652. !   if j <= i goto Label_34        (integer)
  653.     ld    [%fp+-8],%o0
  654.     ld    [%fp+-4],%o1
  655.     cmp    %o0,%o1
  656.     ble    Label_34
  657.     nop
  658. !   goto Label_35
  659.     ba    Label_35
  660.     nop
  661. !   Label_34:
  662. Label_34:
  663. ! THEN...
  664. ! WRITE STMT...
  665. !   writeString str29
  666.     sethi    %hi(str29),%o0
  667.     call    printf
  668.     or    %o0,%lo(str29),%o0
  669. !   writeNewline
  670.     sethi    %hi(strNL),%o0
  671.     call    printf
  672.     or    %o0,%lo(strNL),%o0
  673. !   goto Label_36
  674.     ba    Label_36
  675.     nop
  676. !   Label_35:
  677. Label_35:
  678. ! ELSE...
  679. ! WRITE STMT...
  680. !   writeString str30
  681.     sethi    %hi(str30),%o0
  682.     call    printf
  683.     or    %o0,%lo(str30),%o0
  684. !   writeNewline
  685.     sethi    %hi(strNL),%o0
  686.     call    printf
  687.     or    %o0,%lo(strNL),%o0
  688. ! END IF...
  689. !   Label_36:
  690. Label_36:
  691. ! IF...
  692. !   if i <= j goto Label_37        (integer)
  693.     ld    [%fp+-4],%o0
  694.     ld    [%fp+-8],%o1
  695.     cmp    %o0,%o1
  696.     ble    Label_37
  697.     nop
  698. !   goto Label_38
  699.     ba    Label_38
  700.     nop
  701. !   Label_37:
  702. Label_37:
  703. ! THEN...
  704. ! WRITE STMT...
  705. !   writeString str31
  706.     sethi    %hi(str31),%o0
  707.     call    printf
  708.     or    %o0,%lo(str31),%o0
  709. !   writeNewline
  710.     sethi    %hi(strNL),%o0
  711.     call    printf
  712.     or    %o0,%lo(strNL),%o0
  713. !   goto Label_39
  714.     ba    Label_39
  715.     nop
  716. !   Label_38:
  717. Label_38:
  718. ! ELSE...
  719. ! WRITE STMT...
  720. !   writeString str32
  721.     sethi    %hi(str32),%o0
  722.     call    printf
  723.     or    %o0,%lo(str32),%o0
  724. !   writeNewline
  725.     sethi    %hi(strNL),%o0
  726.     call    printf
  727.     or    %o0,%lo(strNL),%o0
  728. ! END IF...
  729. !   Label_39:
  730. Label_39:
  731. ! WRITE STMT...
  732. !   writeString str33
  733.     sethi    %hi(str33),%o0
  734.     call    printf
  735.     or    %o0,%lo(str33),%o0
  736. !   writeNewline
  737.     sethi    %hi(strNL),%o0
  738.     call    printf
  739.     or    %o0,%lo(strNL),%o0
  740. ! IF...
  741. !   if i >= i goto Label_40        (integer)
  742.     ld    [%fp+-4],%o0
  743.     ld    [%fp+-4],%o1
  744.     cmp    %o0,%o1
  745.     bge    Label_40
  746.     nop
  747. !   goto Label_41
  748.     ba    Label_41
  749.     nop
  750. !   Label_40:
  751. Label_40:
  752. ! THEN...
  753. ! WRITE STMT...
  754. !   writeString str34
  755.     sethi    %hi(str34),%o0
  756.     call    printf
  757.     or    %o0,%lo(str34),%o0
  758. !   writeNewline
  759.     sethi    %hi(strNL),%o0
  760.     call    printf
  761.     or    %o0,%lo(strNL),%o0
  762. !   goto Label_42
  763.     ba    Label_42
  764.     nop
  765. !   Label_41:
  766. Label_41:
  767. ! ELSE...
  768. ! WRITE STMT...
  769. !   writeString str35
  770.     sethi    %hi(str35),%o0
  771.     call    printf
  772.     or    %o0,%lo(str35),%o0
  773. !   writeNewline
  774.     sethi    %hi(strNL),%o0
  775.     call    printf
  776.     or    %o0,%lo(strNL),%o0
  777. ! END IF...
  778. !   Label_42:
  779. Label_42:
  780. ! IF...
  781. !   if j >= i goto Label_43        (integer)
  782.     ld    [%fp+-8],%o0
  783.     ld    [%fp+-4],%o1
  784.     cmp    %o0,%o1
  785.     bge    Label_43
  786.     nop
  787. !   goto Label_44
  788.     ba    Label_44
  789.     nop
  790. !   Label_43:
  791. Label_43:
  792. ! THEN...
  793. ! WRITE STMT...
  794. !   writeString str36
  795.     sethi    %hi(str36),%o0
  796.     call    printf
  797.     or    %o0,%lo(str36),%o0
  798. !   writeNewline
  799.     sethi    %hi(strNL),%o0
  800.     call    printf
  801.     or    %o0,%lo(strNL),%o0
  802. !   goto Label_45
  803.     ba    Label_45
  804.     nop
  805. !   Label_44:
  806. Label_44:
  807. ! ELSE...
  808. ! WRITE STMT...
  809. !   writeString str37
  810.     sethi    %hi(str37),%o0
  811.     call    printf
  812.     or    %o0,%lo(str37),%o0
  813. !   writeNewline
  814.     sethi    %hi(strNL),%o0
  815.     call    printf
  816.     or    %o0,%lo(strNL),%o0
  817. ! END IF...
  818. !   Label_45:
  819. Label_45:
  820. ! IF...
  821. !   if i >= j goto Label_46        (integer)
  822.     ld    [%fp+-4],%o0
  823.     ld    [%fp+-8],%o1
  824.     cmp    %o0,%o1
  825.     bge    Label_46
  826.     nop
  827. !   goto Label_47
  828.     ba    Label_47
  829.     nop
  830. !   Label_46:
  831. Label_46:
  832. ! THEN...
  833. ! WRITE STMT...
  834. !   writeString str38
  835.     sethi    %hi(str38),%o0
  836.     call    printf
  837.     or    %o0,%lo(str38),%o0
  838. !   writeNewline
  839.     sethi    %hi(strNL),%o0
  840.     call    printf
  841.     or    %o0,%lo(strNL),%o0
  842. !   goto Label_48
  843.     ba    Label_48
  844.     nop
  845. !   Label_47:
  846. Label_47:
  847. ! ELSE...
  848. ! WRITE STMT...
  849. !   writeString str39
  850.     sethi    %hi(str39),%o0
  851.     call    printf
  852.     or    %o0,%lo(str39),%o0
  853. !   writeNewline
  854.     sethi    %hi(strNL),%o0
  855.     call    printf
  856.     or    %o0,%lo(strNL),%o0
  857. ! END IF...
  858. !   Label_48:
  859. Label_48:
  860. ! MAIN EXIT...
  861. !   mainExit
  862.     ret
  863.     restore
  864.