home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 3 / 3137 / dflonum.s < prev    next >
Encoding:
Text File  |  1991-03-27  |  17.6 KB  |  1,343 lines

  1. #NO_APP
  2. gcc_compiled.:
  3. .data
  4.     .even
  5. _constant_zero_kludge:
  6.     .long 0
  7. _component_index:
  8.     .byte 3
  9.     .byte 3
  10.     .byte 2
  11.     .byte 3
  12.     .byte 3
  13.     .byte 2
  14.     .byte 1
  15.     .byte 3
  16.     .byte 2
  17.     .byte 2
  18.     .byte 3
  19.     .byte 1
  20.     .byte 0
  21.     .byte 3
  22.     .byte 1
  23.     .byte 2
  24.     .byte 2
  25.     .byte 1
  26.     .byte 3
  27.     .byte 0
  28.     .byte 0
  29.     .byte 2
  30.     .byte 1
  31.     .byte 1
  32.     .byte 2
  33.     .byte 0
  34.     .byte 0
  35.     .byte 1
  36.     .byte 1
  37.     .byte 0
  38.     .byte 0
  39.     .byte 0
  40. .text
  41.     .even
  42. .globl ___qmult
  43. ___qmult:
  44.     link a6,#-40
  45.     moveml #0x3e20,sp@-
  46.     movel a6,d6
  47.     addql #8,d6
  48.     movel d6,a6@(-4)
  49.     moveq #16,d6
  50.     addl a6,d6
  51.     movel d6,a6@(-8)
  52.     movel #_component_index,a6@(-40)
  53.     clrw a6@(-34)
  54. L2:
  55.     cmpw #9,a6@(-34)
  56.     jgt L3
  57.     movew a6@(-34),d4
  58.     extl d4
  59.     asll #1,d4
  60.     addl a6,d4
  61.     moveq #-28,d6
  62.     addl d4,d6
  63.     movel d6,a0
  64.     clrw a0@
  65. L4:
  66.     addqw #1,a6@(-34)
  67.     jra L2
  68. L3:
  69.     nop
  70. L5:
  71.     movel a6@(-40),a0
  72.     moveb a0@,d6
  73.     extw d6
  74.     movew d6,a6@(-34)
  75.     addql #1,a6@(-40)
  76.     movel a6@(-40),a0
  77.     moveb a0@,d6
  78.     extw d6
  79.     movew d6,a6@(-36)
  80.     addql #1,a6@(-40)
  81.     movew a6@(-34),d4
  82.     extl d4
  83.     asll #1,d4
  84.     movel a6@(-4),a0
  85.     moveq #0,d0
  86.     movew a0@(d4:l),d0
  87.     movew a6@(-36),d4
  88.     extl d4
  89.     asll #1,d4
  90.     movel a6@(-8),a0
  91. #APP
  92.     mulu a0@(d4:l),d0
  93. #NO_APP
  94.     moveq #-28,d4
  95.     addl a6,d4
  96.     movew a6@(-34),a0
  97.     movew a6@(-36),a1
  98.     movel a0,d5
  99.     addl a1,d5
  100.     asll #1,d5
  101.     addql #4,d5
  102.     movel d4,d6
  103.     addl d5,d6
  104.     movel d6,a6@(-32)
  105.     lea _constant_zero_kludge,a0
  106.     addqw #4,a0
  107.     movel d6,a2
  108. #APP
  109.     addl  d0,a2@;            addxl a0@-,a2@-
  110. #NO_APP
  111.     movel a2,a6@(-32)
  112.     tstw a6@(-34)
  113.     jne L8
  114.     tstw a6@(-36)
  115.     jne L8
  116.     jra L6
  117. L8:
  118. L7:
  119.     jra L5
  120. L6:
  121.     moveq #-28,d4
  122.     addl a6,d4
  123.     movel d4,d6
  124.     addql #4,d6
  125.     movel d6,a6@(-32)
  126.     movel a6@(-32),a0
  127.     movel a0@,d1
  128.     addql #4,a6@(-32)
  129.     movel a6@(-32),a0
  130.     movel a0@,d2
  131.     addql #4,a6@(-32)
  132.     movel a6@(-32),a0
  133.     movel a0@,d3
  134.     clrw a6@(-34)
  135. L9:
  136.     cmpw #11,a6@(-34)
  137.     jgt L10
  138. #APP
  139.     asll #1,d3
  140.     roxll #1,d2
  141.     roxll #1,d1
  142. #NO_APP
  143. L11:
  144.     addqw #1,a6@(-34)
  145.     jra L9
  146. L10:
  147.     movel a6@(24),a0
  148.     movel d1,a0@
  149.     movel a6@(28),a0
  150.     movel d2,a0@
  151. L1:
  152.     moveml a6@(-64),#0x47c
  153.     unlk a6
  154.     rts
  155.     .even
  156. LC0:
  157.     .double 0r0.00000000000000000000e+00
  158.     .even
  159. .globl ___muldf3
  160. ___muldf3:
  161.     link a6,#-32
  162.     moveml #0x3f00,sp@-
  163.     movel a6,d2
  164.     addql #8,d2
  165.     movel d2,a6@(-12)
  166.     moveq #16,d2
  167.     addl a6,d2
  168.     movel d2,a6@(-16)
  169.     movel a6@(-12),a0
  170.     movew a0@,d0
  171.     lsrw #4,d0
  172.     moveq #0,d1
  173.     movew d0,d1
  174.     movel d1,d2
  175.     andl #2047,d2
  176.     movel d2,a6@(-20)
  177.     movel a6@(-16),a0
  178.     movew a0@,d0
  179.     lsrw #4,d0
  180.     moveq #0,d1
  181.     movew d0,d1
  182.     movel d1,d2
  183.     andl #2047,d2
  184.     movel d2,a6@(-24)
  185.     tstl a6@(-20)
  186.     jne L13
  187.     movel LC0,d0
  188.     movel LC0+4,d1
  189.     jra L12
  190. L13:
  191.     tstl a6@(-24)
  192.     jne L14
  193.     movel LC0,d0
  194.     movel LC0+4,d1
  195.     jra L12
  196. L14:
  197.     movel a6@(-12),a0
  198.     movel a0@,d0
  199.     andl #1048575,d0
  200.     movel d0,d2
  201.     addl #1048576,d2
  202.     movel d2,a6@(-32)
  203.     movel a6@(-12),a0
  204.     movel a0@(4),d3
  205.     movel a6@(-16),a0
  206.     movel a0@,d0
  207.     andl #1048575,d0
  208.     movel d0,d4
  209.     addl #1048576,d4
  210.     movel a6@(-16),a0
  211.     movel a0@(4),d5
  212.     movel a6,d0
  213.     subql #8,d0
  214.     movel d0,sp@-
  215.     movel a6,d0
  216.     subql #4,d0
  217.     movel d0,sp@-
  218.     movel d5,sp@-
  219.     movel d4,sp@-
  220.     movel d3,sp@-
  221.     movel a6@(-32),sp@-
  222.     jbsr ___qmult
  223.     movel a6@(-4),d6
  224.     movel a6@(-8),d7
  225.     movel d6,d0
  226.     andl #2097152,d0
  227.     addw #24,sp
  228.     tstl d0
  229.     jeq L15
  230. #APP
  231.     asrl #1,d6
  232.     roxrl #1,d7
  233. #NO_APP
  234.     addql #1,a6@(-20)
  235. L15:
  236.     movel a6@(-12),a0
  237.     moveb a0@,d1
  238.     lsrb #7,d1
  239.     moveq #0,d0
  240.     moveb d1,d0
  241.     movel a6@(-16),a0
  242.     moveb a0@,d1
  243.     lsrb #7,d1
  244.     subl a0,a0
  245.     movel a0,d2
  246.     moveb d1,d2
  247.     movel d2,a0
  248.     cmpl d0,a0
  249.     jne L16
  250.     movel a6@(-12),a0
  251.     andb #127,a0@
  252.     jra L17
  253. L16:
  254.     movel a6@(-12),a0
  255.     orb #128,a0@
  256. L17:
  257.     movel a6@(-12),a0
  258.     movel a6@(-20),d0
  259.     addl a6@(-24),d0
  260.     addl #-1023,d0
  261.     andw #2047,d0
  262.     lslw #4,d0
  263.     andw #32783,a0@
  264.     orw d0,a0@
  265.     movel a6@(-12),a0
  266.     movel d6,d0
  267.     andl #1048575,d0
  268.     andl #-1048576,a0@
  269.     orl d0,a0@
  270.     movel a6@(-12),a0
  271.     movel d7,a0@(4)
  272.     movel a6@(8),d0
  273.     movel a6@(12),d1
  274.     jra L12
  275. L12:
  276.     moveml a6@(-56),#0xfc
  277.     unlk a6
  278.     rts
  279.     .even
  280. .globl ___negdf2
  281. ___negdf2:
  282.     link a6,#-4
  283.     movel a6,a1
  284.     addqw #8,a1
  285.     movel a1,a6@(-4)
  286.     movel a6@(-4),a0
  287.     tstl a0@
  288.     jeq L19
  289.     movel a6@(-4),d0
  290.     movel d0,a0
  291.     eorl #-2147483648,a0@
  292. L19:
  293.     movel a6@(8),d0
  294.     movel a6@(12),d1
  295.     jra L18
  296. L18:
  297.     unlk a6
  298.     rts
  299.     .even
  300. .globl ___adddf3
  301. ___adddf3:
  302.     link a6,#-20
  303.     moveml #0x3e20,sp@-
  304.     movel a6,d6
  305.     addql #8,d6
  306.     movel d6,a6@(-4)
  307.     moveq #16,d6
  308.     addl a6,d6
  309.     movel d6,a6@(-8)
  310.     movel a6@(-4),a0
  311.     movew a0@,d0
  312.     lsrw #4,d0
  313.     andw #2047,d0
  314.     movew d0,a6@(-10)
  315.     movel a6@(-8),a0
  316.     movew a0@,d0
  317.     lsrw #4,d0
  318.     andw #2047,d0
  319.     movew d0,a6@(-12)
  320.     tstw a6@(-10)
  321.     jne L21
  322.     movel a6@(16),d0
  323.     movel a6@(20),d1
  324.     jra L20
  325. L21:
  326.     tstw a6@(-12)
  327.     jne L22
  328.     movel a6@(8),d0
  329.     movel a6@(12),d1
  330.     jra L20
  331. L22:
  332.     movew a6@(-12),d6
  333.     cmpw a6@(-10),d6
  334.     jle L23
  335.     moveq #16,d6
  336.     addl a6,d6
  337.     movel d6,a6@(-4)
  338.     movel a6,d6
  339.     addql #8,d6
  340.     movel d6,a6@(-8)
  341.     movel a6@(-4),a0
  342.     movew a0@,d0
  343.     lsrw #4,d0
  344.     andw #2047,d0
  345.     movew d0,a6@(-10)
  346.     movel a6@(-8),a0
  347.     movew a0@,d0
  348.     lsrw #4,d0
  349.     andw #2047,d0
  350.     movew d0,a6@(-12)
  351. L23:
  352.     movew a6@(-10),d6
  353.     subw a6@(-12),d6
  354.     movew d6,a6@(-18)
  355.     cmpw #53,a6@(-18)
  356.     jle L24
  357.     movel a6@(8),d0
  358.     movel a6@(12),d1
  359.     jra L20
  360. L24:
  361.     movel a6@(-8),a0
  362.     movel a0@,d5
  363.     andl #1048575,d5
  364.     addl #1048576,d5
  365.     movel a6@(-8),a0
  366.     movel a0@(4),d4
  367.     movel a6@(-4),a0
  368.     movel a0@,d3
  369.     andl #1048575,d3
  370.     addl #1048576,d3
  371.     movel a6@(-4),a0
  372.     movel a0@(4),d2
  373.     clrw a6@(-20)
  374. L25:
  375.     movew a6@(-18),d6
  376.     cmpw a6@(-20),d6
  377.     jle L26
  378. #APP
  379.     asrl #1,d5
  380.     roxrl #1,d4
  381. #NO_APP
  382. L27:
  383.     addqw #1,a6@(-20)
  384.     jra L25
  385. L26:
  386.     movel a6@(-4),a0
  387.     moveb a0@,d0
  388.     lsrb #7,d0
  389.     moveq #0,d1
  390.     moveb d0,d1
  391.     tstl d1
  392.     jeq L28
  393. #APP
  394.     negl d2
  395.     negxl d3
  396. #NO_APP
  397. L28:
  398.     movel a6@(-8),a0
  399.     moveb a0@,d0
  400.     lsrb #7,d0
  401.     moveq #0,d1
  402.     moveb d0,d1
  403.     tstl d1
  404.     jeq L29
  405. #APP
  406.     negl d4
  407.     negxl d5
  408. #NO_APP
  409. L29:
  410. #APP
  411.     addl d4,d2
  412.     addxl d5,d3
  413. #NO_APP
  414.     movel a6,d6
  415.     addql #8,d6
  416.     movel d6,a6@(-4)
  417.     tstl d3
  418.     jge L30
  419. #APP
  420.     negl d2
  421.     negxl d3
  422. #NO_APP
  423.     movel a6@(-4),a0
  424.     orb #128,a0@
  425.     jra L31
  426. L30:
  427.     movel a6@(-4),a0
  428.     andb #127,a0@
  429. L31:
  430.     tstl d3
  431.     jne L32
  432.     tstl d2
  433.     jne L32
  434.     movel LC0,d0
  435.     movel LC0+4,d1
  436.     jra L20
  437. L32:
  438.     nop
  439.     clrw a6@(-18)
  440. L33:
  441.     tstl d3
  442.     jlt L34
  443. #APP
  444.     asll #1,d2
  445.     roxll #1,d3
  446. #NO_APP
  447. L35:
  448.     addqw #1,a6@(-18)
  449.     jra L33
  450. L34:
  451. #APP
  452.     asll #1,d2
  453.     roxll #1,d3
  454. #NO_APP
  455.     clrw a6@(-20)
  456. L36:
  457.     cmpw #11,a6@(-20)
  458.     jgt L37
  459. #APP
  460.     asrl #1,d3
  461.     roxrl #1,d2
  462. #NO_APP
  463. L38:
  464.     addqw #1,a6@(-20)
  465.     jra L36
  466. L37:
  467.     movel a6@(-4),a0
  468.     movel d3,d0
  469.     andl #1048575,d0
  470.     andl #-1048576,a0@
  471.     orl d0,a0@
  472.     movel a6@(-4),a0
  473.     movel d2,a0@(4)
  474.     movel a6@(-4),a0
  475.     movew a6@(-10),a1
  476.     movew a6@(-18),a2
  477.     moveq #-11,d0
  478.     addl a2,d0
  479.     subl a1,d0
  480.     negl d0
  481.     andw #2047,d0
  482.     lslw #4,d0
  483.     andw #32783,a0@
  484.     orw d0,a0@
  485.     movel a6@(8),d0
  486.     movel a6@(12),d1
  487.     jra L20
  488. L20:
  489.     moveml a6@(-44),#0x47c
  490.     unlk a6
  491.     rts
  492.     .even
  493. .globl ___subdf3
  494. ___subdf3:
  495.     link a6,#0
  496.     movel d2,sp@-
  497.     movel #___negdf2,d0
  498.     movel a6@(20),sp@-
  499.     movel a6@(16),sp@-
  500.     jbsr ___negdf2
  501.     addqw #8,sp
  502.     movel d0,d0
  503.     movel d1,d1
  504.     movel #___adddf3,d2
  505.     movel a6@(12),sp@-
  506.     movel a6@(8),sp@-
  507.     movel d1,sp@-
  508.     movel d0,sp@-
  509.     jbsr ___adddf3
  510.     addw #16,sp
  511.     movel d0,d0
  512.     movel d1,d1
  513.     movel d0,d0
  514.     movel d1,d1
  515.     jra L39
  516. L39:
  517.     movel a6@(-4),d2
  518.     unlk a6
  519.     rts
  520.     .even
  521. .globl ___cmpdf2
  522. ___cmpdf2:
  523.     link a6,#-16
  524.     movel d2,sp@-
  525.     movel a6,d2
  526.     addql #8,d2
  527.     movel d2,a6@(-4)
  528.     moveq #16,d2
  529.     addl a6,d2
  530.     movel d2,a6@(-8)
  531.     movel a6@(-4),a0
  532.     moveb a0@,d0
  533.     lsrb #7,d0
  534.     moveq #0,d1
  535.     moveb d0,d1
  536.     movel d1,a6@(-12)
  537.     movel a6@(-8),a0
  538.     moveb a0@,d0
  539.     lsrb #7,d0
  540.     moveq #0,d1
  541.     moveb d0,d1
  542.     movel d1,a6@(-16)
  543.     movel a6@(-12),d2
  544.     cmpl a6@(-16),d2
  545.     jls L41
  546.     moveq #-1,d0
  547.     jra L40
  548. L41:
  549.     movel a6@(-12),d2
  550.     cmpl a6@(-16),d2
  551.     jcc L42
  552.     moveq #1,d0
  553.     jra L40
  554. L42:
  555.     tstl a6@(-12)
  556.     jeq L43
  557.     moveq #16,d2
  558.     addl a6,d2
  559.     movel d2,a6@(-4)
  560.     movel a6,d2
  561.     addql #8,d2
  562.     movel d2,a6@(-8)
  563. L43:
  564.     movel a6@(-4),a0
  565.     movew a0@,d0
  566.     lsrw #4,d0
  567.     moveq #0,d1
  568.     movew d0,d1
  569.     movel d1,d2
  570.     andl #2047,d2
  571.     movel d2,a6@(-12)
  572.     movel a6@(-8),a0
  573.     movew a0@,d0
  574.     lsrw #4,d0
  575.     moveq #0,d1
  576.     movew d0,d1
  577.     movel d1,d2
  578.     andl #2047,d2
  579.     movel d2,a6@(-16)
  580.     movel a6@(-12),d2
  581.     cmpl a6@(-16),d2
  582.     jls L44
  583.     moveq #1,d0
  584.     jra L40
  585. L44:
  586.     movel a6@(-12),d2
  587.     cmpl a6@(-16),d2
  588.     jcc L45
  589.     moveq #-1,d0
  590.     jra L40
  591. L45:
  592.     movel a6@(-4),a0
  593.     movel a0@,d2
  594.     andl #1048575,d2
  595.     movel d2,a6@(-12)
  596.     movel a6@(-8),a0
  597.     movel a0@,d2
  598.     andl #1048575,d2
  599.     movel d2,a6@(-16)
  600.     movel a6@(-12),d2
  601.     cmpl a6@(-16),d2
  602.     jls L46
  603.     moveq #1,d0
  604.     jra L40
  605. L46:
  606.     movel a6@(-12),d2
  607.     cmpl a6@(-16),d2
  608.     jcc L47
  609.     moveq #-1,d0
  610.     jra L40
  611. L47:
  612.     movel a6@(-4),a0
  613.     movel a0@(4),a6@(-12)
  614.     movel a6@(-8),a0
  615.     movel a0@(4),a6@(-16)
  616.     movel a6@(-12),d2
  617.     cmpl a6@(-16),d2
  618.     jls L48
  619.     moveq #1,d0
  620.     jra L40
  621. L48:
  622.     movel a6@(-12),d2
  623.     cmpl a6@(-16),d2
  624.     jcc L49
  625.     moveq #-1,d0
  626.     jra L40
  627. L49:
  628.     moveq #0,d0
  629.     jra L40
  630. L40:
  631.     movel a6@(-20),d2
  632.     unlk a6
  633.     rts
  634.     .even
  635. .globl ___fixunsdfsi
  636. ___fixunsdfsi:
  637.     link a6,#-20
  638.     moveml #0x3000,sp@-
  639.     movel a6,d2
  640.     addql #8,d2
  641.     movel d2,a6@(-4)
  642.     movel a6@(-4),a0
  643.     moveb a0@,d0
  644.     lsrb #7,d0
  645.     moveq #0,d1
  646.     moveb d0,d1
  647.     movel d1,a6@(-8)
  648.     movel a6@(-4),a0
  649.     movew a0@,d0
  650.     lsrw #4,d0
  651.     moveq #0,d1
  652.     movew d0,d1
  653.     movel d1,d2
  654.     andl #2047,d2
  655.     movel d2,a6@(-12)
  656.     movel a6@(-4),a0
  657.     movel a0@,d0
  658.     andl #1048575,d0
  659.     movel d0,d2
  660.     addl #1048576,d2
  661.     movel d2,a6@(-16)
  662.     movel a6@(-4),a0
  663.     movel a0@(4),a6@(-20)
  664.     tstl a6@(-12)
  665.     jne L51
  666.     moveq #0,d0
  667.     jra L50
  668. L51:
  669.     cmpl #1022,a6@(-12)
  670.     jgt L52
  671.     moveq #0,d0
  672.     jra L50
  673. L52:
  674.     tstl a6@(-8)
  675.     jeq L53
  676.     moveq #0,d0
  677.     jra L50
  678. L53:
  679.     movel a6@(-16),d2
  680.     moveq #10,d3
  681.     asll d3,d2
  682.     movel d2,a6@(-16)
  683.     movel a6@(-20),d0
  684.     moveq #22,d2
  685.     asrl d2,d0
  686.     addl d0,a6@(-16)
  687.     movel #1053,d0
  688.     subl a6@(-12),d0
  689.     movel a6@(-16),d2
  690.     asrl d0,d2
  691.     movel d2,a6@(-16)
  692.     movel a6@(-16),d0
  693.     jra L50
  694. L50:
  695.     moveml a6@(-28),#0xc
  696.     unlk a6
  697.     rts
  698.     .even
  699. .globl ___fixdfsi
  700. ___fixdfsi:
  701.     link a6,#-4
  702.     movel a6,a1
  703.     addqw #8,a1
  704.     movel a1,a6@(-4)
  705.     movel a6@(-4),a0
  706.     moveb a0@,d0
  707.     lsrb #7,d0
  708.     moveq #0,d1
  709.     moveb d0,d1
  710.     tstl d1
  711.     jeq L55
  712.     movel a6@(-4),a0
  713.     andb #127,a0@
  714.     movel a6@(12),sp@-
  715.     movel a6@(8),sp@-
  716.     jbsr ___fixunsdfsi
  717.     negl d0
  718.     jra L54
  719. L55:
  720.     movel a6@(12),sp@-
  721.     movel a6@(8),sp@-
  722.     jbsr ___fixunsdfsi
  723.     jra L54
  724. L54:
  725.     unlk a6
  726.     rts
  727.     .even
  728. .globl ___fixdfdi
  729. ___fixdfdi:
  730.     link a6,#-8
  731.     movel d2,sp@-
  732.     movel a6@(12),sp@-
  733.     movel a6@(8),sp@-
  734.     jbsr ___fixdfsi
  735.     addqw #8,sp
  736.     movel d0,a6@(-8)
  737.     movel a6@(12),sp@-
  738.     movel a6@(8),sp@-
  739.     jbsr ___fixdfsi
  740.     addqw #8,sp
  741.     movel d0,d0
  742.     tstl d0
  743.     jge L57
  744.     moveq #-1,d2
  745.     movel d2,a6@(-4)
  746.     jra L58
  747. L57:
  748.     clrl a6@(-4)
  749. L58:
  750.     movel a6@(-8),d0
  751.     movel a6@(-4),d1
  752.     jra L56
  753. L56:
  754.     movel a6@(-12),d2
  755.     unlk a6
  756.     rts
  757.     .even
  758. .globl ___floatsidf
  759. ___floatsidf:
  760.     link a6,#-24
  761.     moveml #0x3000,sp@-
  762.     moveq #-16,d2
  763.     addl a6,d2
  764.     movel d2,a6@(-20)
  765.     tstl a6@(8)
  766.     jne L60
  767.     moveq #-16,d2
  768.     addl a6,d2
  769.     movel d2,a6@(-24)
  770.     movel a6@(-24),a0
  771.     clrl a0@
  772.     movel a6@(-24),a0
  773.     addqw #4,a0
  774.     clrl a0@
  775.     movel a6@(-16),d0
  776.     movel a6@(-12),d1
  777.     jra L59
  778. L60:
  779.     tstl a6@(8)
  780.     jge L61
  781.     movel a6@(-20),a0
  782.     orb #128,a0@
  783.     negl a6@(8)
  784.     jra L62
  785. L61:
  786.     movel a6@(-20),a0
  787.     andb #127,a0@
  788. L62:
  789.     movel a6@(8),a6@(-8)
  790.     movel #1054,a6@(-4)
  791. L63:
  792.     tstl a6@(-8)
  793.     jle L64
  794. L65:
  795.     subql #1,a6@(-4)
  796.     movel a6@(-8),d0
  797.     asll #1,d0
  798.     movel d0,d0
  799.     movel d0,a6@(-8)
  800.     jra L63
  801. L64:
  802.     movel a6@(-8),d2
  803.     asll #1,d2
  804.     movel d2,a6@(-8)
  805.     movel a6@(-20),a0
  806.     movew a6@(-2),d0
  807.     andw #2047,d0
  808.     lslw #4,d0
  809.     andw #32783,a0@
  810.     orw d0,a0@
  811.     movel a6@(-20),a0
  812.     movel a6@(-8),d0
  813.     moveq #12,d2
  814.     asrl d2,d0
  815.     andl #1048575,d0
  816.     andl #-1048576,a0@
  817.     orl d0,a0@
  818.     movel a6@(-20),a0
  819.     movel a6@(-8),d2
  820.     moveq #20,d3
  821.     asll d3,d2
  822.     movel d2,a0@(4)
  823.     movel a6@(-16),d0
  824.     movel a6@(-12),d1
  825.     jra L59
  826. L59:
  827.     moveml a6@(-32),#0xc
  828.     unlk a6
  829.     rts
  830.     .even
  831. LC1:
  832.     .double 0r6.55360000000000000000e+04
  833.     .even
  834. .globl ___floatdidf
  835. ___floatdidf:
  836.     link a6,#0
  837.     moveml #0x3f00,sp@-
  838.     movel a6@(12),sp@-
  839.     jbsr ___floatsidf
  840.     addqw #4,sp
  841.     movel d0,d0
  842.     movel d1,d1
  843.     movel d0,d2
  844.     movel d1,d3
  845.     movel #___muldf3,d0
  846.     movel LC1+4,sp@-
  847.     movel LC1,sp@-
  848.     movel d3,sp@-
  849.     movel d2,sp@-
  850.     jbsr ___muldf3
  851.     addw #16,sp
  852.     movel d0,d0
  853.     movel d1,d1
  854.     movel #___muldf3,d4
  855.     movel LC1+4,sp@-
  856.     movel LC1,sp@-
  857.     movel d1,sp@-
  858.     movel d0,sp@-
  859.     jbsr ___muldf3
  860.     addw #16,sp
  861.     movel d0,d0
  862.     movel d1,d1
  863.     movel d0,d2
  864.     movel d1,d3
  865.     movel a6@(8),sp@-
  866.     jbsr ___floatsidf
  867.     addqw #4,sp
  868.     movel d0,d6
  869.     movel d1,d7
  870.     clrl sp@-
  871.     clrl sp@-
  872.     movel d7,sp@-
  873.     movel d6,sp@-
  874.     jbsr ___cmpdf2
  875.     addw #16,sp
  876.     tstl d0
  877.     jge L67
  878.     movel #___adddf3,d0
  879.     clrl sp@-
  880.     movel #1106247680,sp@-
  881.     movel d7,sp@-
  882.     movel d6,sp@-
  883.     jbsr ___adddf3
  884.     addw #16,sp
  885.     movel d0,d0
  886.     movel d1,d1
  887.     movel d0,d6
  888.     movel d1,d7
  889. L67:
  890.     movel d6,d4
  891.     movel d7,d5
  892.     movel #___adddf3,d0
  893.     movel d5,sp@-
  894.     movel d4,sp@-
  895.     movel d3,sp@-
  896.     movel d2,sp@-
  897.     jbsr ___adddf3
  898.     addw #16,sp
  899.     movel d0,d0
  900.     movel d1,d1
  901.     movel d0,d0
  902.     movel d1,d1
  903.     jra L66
  904. L66:
  905.     moveml a6@(-24),#0xfc
  906.     unlk a6
  907.     rts
  908.     .even
  909. LC2:
  910.     .single 0r0.00000000000000000000e+00
  911.     .even
  912. .globl ___dtof
  913. ___dtof:
  914.     link a6,#-16
  915.     movel d2,sp@-
  916.     movel a6,d2
  917.     addql #8,d2
  918.     movel d2,a6@(-4)
  919.     movel a6,d2
  920.     subql #8,d2
  921.     movel d2,a6@(-12)
  922.     movel a6@(-12),a0
  923.     movel a6@(-4),a1
  924.     moveb a1@,d0
  925.     lsrb #7,d0
  926.     moveq #0,d1
  927.     moveb d0,d1
  928.     moveb d1,d0
  929.     andb #1,d0
  930.     lslb #7,d0
  931.     andb #127,a0@
  932.     orb d0,a0@
  933.     movel a6@(-4),a0
  934.     movew a0@,d0
  935.     lsrw #4,d0
  936.     moveq #0,d1
  937.     movew d0,d1
  938.     movel d1,d0
  939.     andl #2047,d0
  940.     tstl d0
  941.     jne L69
  942.     movel LC2,d0
  943.     jra L68
  944. L69:
  945.     movel a6@(-12),a0
  946.     movel a6@(-4),a1
  947.     movew a1@,d0
  948.     lsrw #4,d0
  949.     moveq #0,d1
  950.     movew d0,d1
  951.     movel d1,d0
  952.     andl #2047,d0
  953.     addl #-896,d0
  954.     andw #255,d0
  955.     lslw #7,d0
  956.     andw #32895,a0@
  957.     orw d0,a0@
  958.     movel a6@(-4),a0
  959.     movel a0@,d0
  960.     andl #1048575,d0
  961.     asll #4,d0
  962.     movel a6@(-4),a0
  963.     movel a0@(4),d1
  964.     andl #-268435456,d1
  965.     moveq #28,d2
  966.     lsrl d2,d1
  967.     movel d0,d2
  968.     addl d1,d2
  969.     movel d2,a6@(-16)
  970.     addql #1,a6@(-16)
  971.     cmpl #16777216,a6@(-16)
  972.     jne L70
  973.     movel a6@(-12),d0
  974.     movel d0,a0
  975.     movew a0@,d0
  976.     lsrw #7,d0
  977.     moveq #0,d1
  978.     movew d0,d1
  979.     movel d1,d0
  980.     andl #255,d0
  981.     movew a0@,d0
  982.     lsrw #7,d0
  983.     moveq #0,d1
  984.     movew d0,d1
  985.     movel d1,d0
  986.     andl #255,d0
  987.     addql #1,d0
  988.     andw #255,d0
  989.     lslw #7,d0
  990.     andw #32895,a0@
  991.     orw d0,a0@
  992. L70:
  993.     movel a6@(-12),a0
  994.     movel a6@(-16),d0
  995.     asrl #1,d0
  996.     andl #8388607,d0
  997.     andl #-8388608,a0@
  998.     orl d0,a0@
  999.     movel a6@(-8),d0
  1000.     jra L68
  1001. L68:
  1002.     movel a6@(-20),d2
  1003.     unlk a6
  1004.     rts
  1005.     .even
  1006. .globl ___truncdfsf2
  1007. ___truncdfsf2:
  1008.     link a6,#-4
  1009.     movel a6@(12),sp@-
  1010.     movel a6@(8),sp@-
  1011.     jbsr ___dtof
  1012.     movel d0,d0
  1013.     movel d0,a6@(-4)
  1014.     movel a6@(-4),d0
  1015.     jra L71
  1016. L71:
  1017.     unlk a6
  1018.     rts
  1019.     .even
  1020. .globl ___ftod
  1021. ___ftod:
  1022.     link a6,#-16
  1023.     moveml #0x3000,sp@-
  1024.     movel a6,d2
  1025.     addql #8,d2
  1026.     movel d2,a6@(-12)
  1027.     movel a6,d2
  1028.     subql #8,d2
  1029.     movel d2,a6@(-16)
  1030.     movel a6@(-12),a0
  1031.     movew a0@,d0
  1032.     lsrw #7,d0
  1033.     moveq #0,d1
  1034.     movew d0,d1
  1035.     movel d1,d0
  1036.     andl #255,d0
  1037.     tstl d0
  1038.     jne L73
  1039.     movel LC0,d0
  1040.     movel LC0+4,d1
  1041.     jra L72
  1042. L73:
  1043.     movel a6@(-16),a0
  1044.     movel a6@(-12),a1
  1045.     moveb a1@,d0
  1046.     lsrb #7,d0
  1047.     moveq #0,d1
  1048.     moveb d0,d1
  1049.     moveb d1,d0
  1050.     andb #1,d0
  1051.     lslb #7,d0
  1052.     andb #127,a0@
  1053.     orb d0,a0@
  1054.     movel a6@(-16),a0
  1055.     movel a6@(-12),a1
  1056.     movew a1@,d0
  1057.     lsrw #7,d0
  1058.     moveq #0,d1
  1059.     movew d0,d1
  1060.     movel d1,d0
  1061.     andl #255,d0
  1062.     addl #896,d0
  1063.     andw #2047,d0
  1064.     lslw #4,d0
  1065.     andw #32783,a0@
  1066.     orw d0,a0@
  1067.     movel a6@(-16),a0
  1068.     movel a6@(-12),a1
  1069.     movel a1@,d0
  1070.     andl #8388607,d0
  1071.     asrl #3,d0
  1072.     andl #1048575,d0
  1073.     andl #-1048576,a0@
  1074.     orl d0,a0@
  1075.     movel a6@(-16),a0
  1076.     movel a6@(-12),a1
  1077.     movel a1@,d0
  1078.     andl #8388607,d0
  1079.     moveq #7,d2
  1080.     andl d2,d0
  1081.     movel d0,d2
  1082.     moveq #29,d3
  1083.     asll d3,d2
  1084.     movel d2,a0@(4)
  1085.     movel a6@(-8),d0
  1086.     movel a6@(-4),d1
  1087.     jra L72
  1088. L72:
  1089.     moveml a6@(-24),#0xc
  1090.     unlk a6
  1091.     rts
  1092.     .even
  1093. .globl ___extendsfdf2
  1094. ___extendsfdf2:
  1095.     link a6,#-12
  1096.     movel a6@(8),sp@-
  1097.     jbsr ___ftod
  1098.     jra L74
  1099. L74:
  1100.     unlk a6
  1101.     rts
  1102.     .even
  1103. .globl ___divdf3
  1104. ___divdf3:
  1105.     link a6,#-68
  1106.     moveml #0x3f00,sp@-
  1107.     movel a6@(8),a6@(-8)
  1108.     movel a6@(12),a6@(-4)
  1109.     movel a6@(16),a6@(-16)
  1110.     movel a6@(20),a6@(-12)
  1111.     movel a6,d7
  1112.     subql #8,d7
  1113.     movel d7,a6@(-20)
  1114.     moveq #-16,d7
  1115.     addl a6,d7
  1116.     movel d7,a6@(-24)
  1117.     movel a6@(-20),a0
  1118.     movew a0@,d0
  1119.     lsrw #4,d0
  1120.     andw #2047,d0
  1121.     movew d0,a6@(-26)
  1122.     movel a6@(-24),a0
  1123.     movew a0@,d0
  1124.     lsrw #4,d0
  1125.     andw #2047,d0
  1126.     movew d0,a6@(-28)
  1127.     clrw a6@(-30)
  1128.     tstw a6@(-26)
  1129.     jeq L77
  1130.     tstw a6@(-28)
  1131.     jeq L77
  1132.     jra L76
  1133. L77:
  1134.     movel LC0,d0
  1135.     movel LC0+4,d1
  1136.     jra L75
  1137. L76:
  1138.     movel a6@(-20),a0
  1139.     moveb a0@,d0
  1140.     lsrb #7,d0
  1141.     clrw d1
  1142.     moveb d0,d1
  1143.     movew d1,d0
  1144.     addw a6@(-30),d0
  1145.     movel a6@(-24),a0
  1146.     moveb a0@,d1
  1147.     lsrb #7,d1
  1148.     clrw a6@(-66)
  1149.     moveb d1,a6@(-65)
  1150.     movew d0,d7
  1151.     subw a6@(-66),d7
  1152.     movew d7,a6@(-30)
  1153.     movel a6@(-20),a0
  1154.     movel a0@,d0
  1155.     andl #1048575,d0
  1156.     movel d0,d7
  1157.     bset #20,d7
  1158.     movel d7,a6@(-34)
  1159.     movel a6@(-20),a0
  1160.     movel a0@(4),a6@(-38)
  1161.     clrl a6@(-42)
  1162.     clrl a6@(-46)
  1163.     movel a6@(-24),a0
  1164.     movel a0@,d3
  1165.     andl #1048575,d3
  1166.     bset #20,d3
  1167.     movel a6@(-24),a0
  1168.     movel a0@(4),d4
  1169.     moveq #0,d5
  1170.     moveq #0,d6
  1171.     movel #1048576,a6@(-62)
  1172.     clrw a6@(-64)
  1173.     clrl a6@(-58)
  1174.     clrl a6@(-54)
  1175.     clrl a6@(-50)
  1176.     cmpl a6@(-34),d3
  1177.     jcc L78
  1178.     jra L79
  1179. L78:
  1180.     cmpl a6@(-34),d3
  1181.     jls L80
  1182.     jra L81
  1183. L80:
  1184.     cmpl a6@(-38),d4
  1185.     jhi L82
  1186.     jra L79
  1187. L82:
  1188.     nop
  1189. L81:
  1190.     subqw #1,a6@(-26)
  1191. #APP
  1192.     asrl #1,d3
  1193.     roxrl #1,d4
  1194.     roxrl #1,d5
  1195.     roxrl #1,d6
  1196. #NO_APP
  1197. L79:
  1198.     nop
  1199. L83:
  1200.     cmpw #2,a6@(-64)
  1201.     jne L86
  1202.     movel a6@(-62),d0
  1203.     andl #1073741824,d0
  1204.     tstl d0
  1205.     jeq L86
  1206.     jra L84
  1207. L86:
  1208.     cmpl a6@(-34),d3
  1209.     jcc L87
  1210.     jra L88
  1211. L87:
  1212.     cmpl a6@(-34),d3
  1213.     jls L89
  1214.     jra L90
  1215. L89:
  1216.     cmpl a6@(-38),d4
  1217.     jcc L91
  1218.     jra L88
  1219. L91:
  1220.     cmpl a6@(-38),d4
  1221.     jls L92
  1222.     jra L90
  1223. L92:
  1224.     cmpl a6@(-42),d5
  1225.     jcc L93
  1226.     jra L88
  1227. L93:
  1228.     cmpl a6@(-42),d5
  1229.     jls L94
  1230.     jra L90
  1231. L94:
  1232.     cmpl a6@(-46),d6
  1233.     jls L95
  1234.     jra L90
  1235. L95:
  1236.     nop
  1237. L88:
  1238.     movew a6@(-64),d2
  1239.     extl d2
  1240.     movel d2,d0
  1241.     asll #2,d0
  1242.     addl a6,d0
  1243.     moveq #-58,d7
  1244.     addl d0,d7
  1245.     movel d7,a0
  1246.     movel d2,d0
  1247.     asll #2,d0
  1248.     addl a6,d0
  1249.     moveq #-58,d7
  1250.     addl d0,d7
  1251.     movel d7,a1
  1252.     movel a1@,d7
  1253.     orl a6@(-62),d7
  1254.     movel d7,a0@
  1255.     movel a6@(-46),d0
  1256. #APP
  1257.     subl d6,d0
  1258. #NO_APP
  1259.     movel d0,a6@(-46)
  1260.     movel a6@(-42),d0
  1261. #APP
  1262.     subxl d5,d0
  1263. #NO_APP
  1264.     movel d0,a6@(-42)
  1265.     movel a6@(-38),d0
  1266. #APP
  1267.     subxl d4,d0
  1268. #NO_APP
  1269.     movel d0,a6@(-38)
  1270.     movel a6@(-34),d0
  1271. #APP
  1272.     subxl d3,d0
  1273. #NO_APP
  1274.     movel d0,a6@(-34)
  1275. L90:
  1276. #APP
  1277.     asrl #1,d3
  1278.     roxrl #1,d4
  1279.     roxrl #1,d5
  1280.     roxrl #1,d6
  1281. #NO_APP
  1282.     movel a6@(-62),d7
  1283.     lsrl #1,d7
  1284.     movel d7,a6@(-62)
  1285.     tstl a6@(-62)
  1286.     jne L96
  1287.     movel #-2147483648,a6@(-62)
  1288.     addqw #1,a6@(-64)
  1289. L96:
  1290. L85:
  1291.     jra L83
  1292. L84:
  1293.     tstl a6@(-50)
  1294.     jeq L97
  1295.     moveq #0,d3
  1296.     moveq #1,d4
  1297.     addql #1,a6@(-54)
  1298.     tstl a6@(-54)
  1299.     jne L98
  1300.     addql #1,a6@(-58)
  1301. L98:
  1302.     movel a6@(-58),d0
  1303.     andl #2097152,d0
  1304.     tstl d0
  1305.     jeq L99
  1306.     subqw #1,a6@(-26)
  1307. L99:
  1308. L97:
  1309.     movew a6@(-26),d0
  1310.     subw a6@(-28),d0
  1311.     movew d0,d7
  1312.     addw #1023,d7
  1313.     movew d7,a6@(-26)
  1314.     movel a6@(-20),a0
  1315.     movew a6@(-30),d0
  1316.     extl d0
  1317.     andb #1,d0
  1318.     lslb #7,d0
  1319.     andb #127,a0@
  1320.     orb d0,a0@
  1321.     movel a6@(-20),a0
  1322.     movew a6@(-26),d0
  1323.     extl d0
  1324.     andw #2047,d0
  1325.     lslw #4,d0
  1326.     andw #32783,a0@
  1327.     orw d0,a0@
  1328.     movel a6@(-20),a0
  1329.     movel a6@(-58),d0
  1330.     andl #1048575,d0
  1331.     andl #1048575,d0
  1332.     andl #-1048576,a0@
  1333.     orl d0,a0@
  1334.     movel a6@(-20),a0
  1335.     movel a6@(-54),a0@(4)
  1336.     movel a6@(-8),d0
  1337.     movel a6@(-4),d1
  1338.     jra L75
  1339. L75:
  1340.     moveml a6@(-92),#0xfc
  1341.     unlk a6
  1342.     rts
  1343.