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

  1. #NO_APP
  2. gcc_compiled.:
  3. .text
  4.     .even
  5. LC0:
  6.     .double 0r0.00000000000000000000e+00
  7.     .even
  8. .globl _modf
  9. _modf:
  10.     link a6,#-12
  11.     moveml #0x3f00,sp@-
  12.     movel a6,d6
  13.     addql #8,d6
  14.     movel d6,a6@(-4)
  15.     movel a6@(-4),a0
  16.     movew a0@,d0
  17.     lsrw #4,d0
  18.     moveq #0,d1
  19.     movew d0,d1
  20.     movel d1,d6
  21.     andl #2047,d6
  22.     movel d6,a6@(-8)
  23.     cmpl #1022,a6@(-8)
  24.     jhi L2
  25.     movel a6@(16),a0
  26.     movel LC0,d6
  27.     movel LC0+4,d7
  28.     movel d6,a0@
  29.     movel d7,a0@(4)
  30.     movel a6@(8),d0
  31.     movel a6@(12),d1
  32.     jra L1
  33. L2:
  34.     cmpl #1074,a6@(-8)
  35.     jls L3
  36.     movel a6@(16),a0
  37.     movel a6@(8),d6
  38.     movel a6@(12),d7
  39.     movel d6,a0@
  40.     movel d7,a0@(4)
  41.     movel LC0,d0
  42.     movel LC0+4,d1
  43.     jra L1
  44. L3:
  45.     movel a6@(-4),a0
  46.     moveb a0@,d0
  47.     lsrb #7,d0
  48.     moveq #0,d1
  49.     moveb d0,d1
  50.     movel d1,a6@(-12)
  51.     movel a6@(-4),a0
  52.     movel a0@,d2
  53.     andl #1048575,d2
  54.     bset #20,d2
  55.     movel a6@(-4),a0
  56.     movel a0@(4),d3
  57.     moveq #0,d5
  58.     moveq #0,d4
  59. L4:
  60. #APP
  61.      lsrl  #1,d2;
  62.                 roxrl #1,d3
  63.      roxrl #1,d4;
  64.                 roxrl #1,d5
  65. #NO_APP
  66. L6:
  67.     addql #1,a6@(-8)
  68.     cmpl #1074,a6@(-8)
  69.     jhi L5
  70.     jra L4
  71. L5:
  72.     movel d2,a6@(8)
  73.     movel d3,a6@(12)
  74.     clrl sp@-
  75.     movel a6@(-12),sp@-
  76.     movel a6@(-8),sp@-
  77.     movel a6@(12),sp@-
  78.     movel a6@(8),sp@-
  79.     jbsr _norm
  80.     movel d0,d0
  81.     movel d1,d1
  82.     movel a6@(16),a0
  83.     movel d0,a0@
  84.     movel d1,a0@(4)
  85.     addw #20,sp
  86.     tstl d4
  87.     jne L7
  88.     tstl d5
  89.     jne L7
  90.     movel LC0,d0
  91.     movel LC0+4,d1
  92.     jra L1
  93. L7:
  94.     movel d4,a6@(8)
  95.     movel d5,a6@(12)
  96.     clrl sp@-
  97.     movel a6@(-12),sp@-
  98.     pea 1011:w
  99.     movel a6@(12),sp@-
  100.     movel a6@(8),sp@-
  101.     jbsr _norm
  102.     jra L1
  103. L1:
  104.     moveml a6@(-36),#0xfc
  105.     unlk a6
  106.     rts
  107.