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