home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / gnustuff / tos / updates / update26.zoo / lib / diffc
Encoding:
Text File  |  1992-11-07  |  23.8 KB  |  840 lines

  1. ===================================================================
  2. RCS file: /net/acae127/home/bammi/etc/src/master/atari/lib/Changelo,v
  3. retrieving revision 1.81
  4. diff -c -r1.81 Changelo
  5. *** 1.81    1992/10/09 20:32:44
  6. --- Changelo    1992/11/08 00:03:26
  7. ***************
  8. *** 3361,3363 ****
  9. --- 3361,3421 ----
  10.       may be picked istead of the inline asm version.
  11.   
  12.   ---------------------------- Patchlevel 84 ---------------------------
  13. + doprnt.c:: ++jrb
  14. +     Revert out michaels 15 sig digit hack. causing too many problems
  15. +     (michal jaegermann reports all kinds of failures from gawk, mawk).
  16. +     Revert out DBL_EPSILON hack too..
  17. +     Awaitings michals advise on how to fix mjr's problems...
  18. + _addsub*:: Olaff (flebbe@tat.physik.uni-tuebingen.de)
  19. +     To summarize the changes in both double and float arithmetic:
  20. +     * The "sticky" byte d2.b is now initalized properly. In the former
  21. +     version it was a deterministic random generator.
  22. +     * The rounding is now computed correctly. The rounding bits reside in
  23. +     d3.b.
  24. +     * Due to cancellation effects one get one extra bit. So a conditional
  25. +     jump had to be modified.
  26. +     One extra bug was included in the single precision arithmetic. 
  27. +     * When the routine discovered that shifting can be done by swapping, it
  28. +     shifted the result one  additional digit. 
  29. + _norm*:: Olaff (flebbe@tat.physik.uni-tuebingen.de)
  30. +     round up towards even.
  31. + bcopy.s, bzero.cpp: andreas
  32. +     dont use a4 (for -mbaserel)
  33. + linea.h:: ++jrb
  34. +     linea2() really needs to declare its output (i know its implicit, but
  35. +          unless you put it in the output list, g++ thinks linea2() does
  36. +     not output anthing, and complains on its usage).
  37. + doprnt.c:: ++jrb
  38. +     change condition for unreasonable precision for floats. (it should not
  39. +     have been MAXFRACT only as we do zero padding on the right).
  40. + regexp.c :: ++jrb
  41. +     - include <sys/types.h> instread of <types.h>
  42. +     - fix cast in malloc from (unsigned)  to (size_t) as it should be.
  43. + regexp.c:: ++jrb
  44. +     in regmatch(), there was over-enthusuatic conversion of
  45. +     int to size_t that caused regular expressions to break.
  46. +     please be careful!
  47. +     in the PLUS/STAR case, `no' needs to be a signed entity, other
  48. +     wise the loop is useless.
  49. +     tregex in the library tests showed this up.
  50. + doprnt.c:: ++jrb
  51. +     constraint ("g") on the source operand was wrong for divu. source
  52. +     has to be  data addressable ("dmi" constrain should cover).
  53. + ---------------------------- Patchlevel 85 ---------------------------
  54. ===================================================================
  55. RCS file: /net/acae127/home/bammi/etc/src/master/atari/lib/PatchLev.h,v
  56. retrieving revision 1.60
  57. diff -c -r1.60 PatchLev.h
  58. *** 1.60    1992/10/09 20:32:44
  59. --- PatchLev.h    1992/11/08 00:03:31
  60. ***************
  61. *** 1,5 ****
  62.   
  63. ! #define    PatchLevel "84"
  64.   
  65.   /*
  66.    *
  67. --- 1,5 ----
  68.   
  69. ! #define    PatchLevel "85"
  70.   
  71.   /*
  72.    *
  73. ===================================================================
  74. RCS file: /net/acae127/home/bammi/etc/src/master/atari/lib/mincl,v
  75. retrieving revision 1.22
  76. diff -c -r1.22 mincl
  77. *** 1.22    1992/10/09 20:32:44
  78. --- mincl    1992/11/08 00:03:36
  79. ***************
  80. *** 10,16 ****
  81.           _umoddi3.o _negdi2.o _anddi3.o _iordi3.o _xordi3.o _lshrdi3.o \
  82.           _lshldi3.o _ashldi3.o _ashrdi3.o _one_cmpldi2.o _bdiv.o _cmpdi2.o \
  83.           _ucmpdi2.o _fixunsdfdi.o _fixdfdi.o _floatdidf.o \
  84. !     _fxussfsi.o
  85.   
  86.   GCC=     $(GLIB1) $(GLIB2) \
  87.       ldexp.o frexp.o modf.o alloca.o setjmp.o osbind.o\
  88. --- 10,16 ----
  89.           _umoddi3.o _negdi2.o _anddi3.o _iordi3.o _xordi3.o _lshrdi3.o \
  90.           _lshldi3.o _ashldi3.o _ashrdi3.o _one_cmpldi2.o _bdiv.o _cmpdi2.o \
  91.           _ucmpdi2.o _fixunsdfdi.o _fixdfdi.o _floatdidf.o \
  92. !     _fxussfsi.o _gccbcmp.o
  93.   
  94.   GCC=     $(GLIB1) $(GLIB2) \
  95.       ldexp.o frexp.o modf.o alloca.o setjmp.o osbind.o\
  96. ===================================================================
  97. RCS file: /net/acae127/home/bammi/etc/src/master/atari/co/_addsubd.cpp,v
  98. retrieving revision 1.2
  99. diff -c -r1.2 _addsubd.cpp
  100. *** 1.2    1992/10/09 20:35:29
  101. --- _addsubd.cpp    1992/11/06 23:02:09
  102. ***************
  103. *** 10,16 ****
  104. --- 10,30 ----
  105.   |
  106.   | written by Kai-Uwe Bloem (I5110401@dbstu1.bitnet).
  107.   | Based on a 80x86 floating point packet from comp.os.minix, written by P.Housel
  108. + | patched by Olaf Flebbe (flebbe@tat.physik.uni-tuebingen.de)
  109. + | 
  110. + | Revision 1.3.2 olaf 10-92 :
  111. + |  + increased comparson by one again. (Dont understand, but it works)
  112. + |  + corrected negation of rounding bits and mantissa
  113. + |     >enquire now detects correct IEEE precision
  114. + |     >paranoia now qualifies add/sub as correctly rounded
  115.   |
  116. + | Revision 1.3.1 olaf 10-92 :
  117. + |  + increased comparison of exponents by one.
  118. + |  + initialized sticky byte
  119. + |  + corrected handling of rounding bits
  120. + |     >paranoia now detects no SERIOUS DEFECTS any more
  121. + |     ** Patches need _normdf Rev 1.6.1 (or higher) **
  122. + |
  123.   | Revision 1.3, kub 01-90 :
  124.   | added support for denormalized numbers
  125.   |
  126. ***************
  127. *** 72,78 ****
  128.       bpl    1f
  129.       bchg    #31,d2
  130.   1:
  131. !     cmpw    #53,d1        | is u so much bigger that v is not
  132.       bge    7f        | significant ?
  133.   
  134.       movew    #10-1,d3    | shift u left up to 10 bits to minimize loss
  135. --- 86,92 ----
  136.       bpl    1f
  137.       bchg    #31,d2
  138.   1:
  139. !     cmpw    #55,d1        | is u so much bigger that v is not
  140.       bge    7f        | significant ?
  141.   
  142.       movew    #10-1,d3    | shift u left up to 10 bits to minimize loss
  143. ***************
  144. *** 83,88 ****
  145. --- 97,103 ----
  146.       subw    #1,d1        | done shifting altogether ?
  147.       dbeq    d3,2b        | loop if still can shift u.mant more
  148.       clrw    d3
  149. +     clrb    d2              | clear "sticky byte"
  150.   3:
  151.       cmpw    #16,d1        | see if fast rotate possible
  152.       blt    4f
  153. ***************
  154. *** 101,107 ****
  155.       lsrl    #1,d4        | shift v.mant right the rest of the way
  156.       roxrl    #1,d5        | to line it up with u.mant
  157.       orb    d3,d2        | set "sticky byte" if necessary
  158. !     roxrw    #1,d3        | shift into rounding bits
  159.   4:    dbra    d1,0b        | loop
  160.       andb    #1,d2        | see if "sticky bit" should be set
  161.       orb    d2,d3
  162. --- 116,122 ----
  163.       lsrl    #1,d4        | shift v.mant right the rest of the way
  164.       roxrl    #1,d5        | to line it up with u.mant
  165.       orb    d3,d2        | set "sticky byte" if necessary
  166. !     roxrb    #1,d3        | shift into rounding bits
  167.   4:    dbra    d1,0b        | loop
  168.       andb    #1,d2        | see if "sticky bit" should be set
  169.       orb    d2,d3
  170. ***************
  171. *** 110,116 ****
  172.       bpl    6f        | yes, no negate necessary
  173.   
  174.       negb    d3        | negate rounding bits and v.mant
  175. !     negl    d5
  176.       negxl    d4
  177.   6:
  178.       addl    d5,d7        | u.mant = u.mant + v.mant
  179. --- 125,131 ----
  180.       bpl    6f        | yes, no negate necessary
  181.   
  182.       negb    d3        | negate rounding bits and v.mant
  183. !     negxl    d5
  184.       negxl    d4
  185.   6:
  186.       addl    d5,d7        | u.mant = u.mant + v.mant
  187. ===================================================================
  188. RCS file: /net/acae127/home/bammi/etc/src/master/atari/co/_addsubs.cpp,v
  189. retrieving revision 1.2
  190. diff -c -r1.2 _addsubs.cpp
  191. *** 1.2    1992/10/09 20:35:29
  192. --- _addsubs.cpp    1992/11/06 23:02:09
  193. ***************
  194. *** 10,16 ****
  195. --- 10,31 ----
  196.   |
  197.   | written by Kai-Uwe Bloem (I5110401@dbstu1.bitnet).
  198.   | Based on a 80x86 floating point packet from comp.os.minix, written by P.Housel
  199. + | patched by Olaf Flebbe (flebbe@tat.physik.un-tuebingen.de)
  200.   |
  201. + | Revision 1.3.2 olaf 10-92 :
  202. + |  + increased comparson by one again. (Dont understand, but it works)
  203. + |  + corrected negation of rounding bits and mantissa
  204. + |     >enquire now detects correct IEEE precision
  205. + |     >paranoia now qualifies add/sub as correctly rounded
  206. + |
  207. + | Revision 1.3.1 olaf 10-92 :
  208. + |  + increased comparison of exponents by one.
  209. + |  + initialized sticky byte
  210. + |  + corrected handling of rounding bits
  211. + |  + corrected swapping of register halves
  212. + |     >paranoia now detects only one (obscure) SERIOUS DEFECT.
  213. + |     ** Patches need _normsf Rev 1.4.1 (or higher) **
  214. + |
  215.   | Revision 1.3, kub 01-90 :
  216.   | added support for denormalized numbers
  217.   |
  218. ***************
  219. *** 73,79 ****
  220.       bpl    1f
  221.       bchg    #31,d2
  222.   1:
  223. !     cmpw    #24,d1        | is u so much bigger that v is not
  224.       bge    7f        | significant ?
  225.   
  226.       movew    #7-1,d3        | shift u left up to 7 bits to minimize loss
  227. --- 88,94 ----
  228.       bpl    1f
  229.       bchg    #31,d2
  230.   1:
  231. !     cmpw    #26,d1        | is u so much bigger that v is not
  232.       bge    7f        | significant ?
  233.   
  234.       movew    #7-1,d3        | shift u left up to 7 bits to minimize loss
  235. ***************
  236. *** 83,88 ****
  237. --- 98,104 ----
  238.       subw    #1,d1        | done shifting altogether ?
  239.       dbeq    d3,2b        | loop if still can shift u.mant more
  240.       clrw    d3
  241. +     clrb    d2
  242.   
  243.       cmpw    #16,d1        | see if fast rotate possible
  244.       blt    4f
  245. ***************
  246. *** 94,103 ****
  247.       clrw    d4        | rotate by swapping register halfs
  248.       swap    d4
  249.       subw    #16,d1
  250.   0:
  251.       lsrl    #1,d4        | shift v.mant right the rest of the way
  252.       orb    d3,d2        | set "sticky byte" if necessary
  253. !     roxrw    #1,d3        | shift into rounding bits
  254.   4:    dbra    d1,0b        | loop
  255.       andb    #1,d2        | see if "sticky bit" should be set
  256.       orb    d2,d3
  257. --- 110,120 ----
  258.       clrw    d4        | rotate by swapping register halfs
  259.       swap    d4
  260.       subw    #16,d1
  261. +         bra     4f
  262.   0:
  263.       lsrl    #1,d4        | shift v.mant right the rest of the way
  264.       orb    d3,d2        | set "sticky byte" if necessary
  265. !     roxrb    #1,d3        | shift into rounding bits
  266.   4:    dbra    d1,0b        | loop
  267.       andb    #1,d2        | see if "sticky bit" should be set
  268.       orb    d2,d3
  269. ***************
  270. *** 106,112 ****
  271.       bpl    6f        | yes, no negate necessary
  272.   
  273.       negb    d3        | negate rounding bits and v.mant
  274. !     negl    d4
  275.   6:
  276.       addl    d4,d5        | u.mant = u.mant + v.mant
  277.       bcs    7f        | needn not negate
  278. --- 123,129 ----
  279.       bpl    6f        | yes, no negate necessary
  280.   
  281.       negb    d3        | negate rounding bits and v.mant
  282. !     negxl    d4
  283.   6:
  284.       addl    d4,d5        | u.mant = u.mant + v.mant
  285.       bcs    7f        | needn not negate
  286. ***************
  287. *** 114,120 ****
  288.       bpl    7f        | do not need to negate result
  289.   
  290.       negb    d3        | negate rounding bits and u.mant
  291. !     negl    d5
  292.       notl    d2        | switch sign
  293.   7:
  294.       movel    d5,d4        | move result for normalization
  295. --- 131,137 ----
  296.       bpl    7f        | do not need to negate result
  297.   
  298.       negb    d3        | negate rounding bits and u.mant
  299. !     negxl    d5
  300.       notl    d2        | switch sign
  301.   7:
  302.       movel    d5,d4        | move result for normalization
  303. ===================================================================
  304. RCS file: /net/acae127/home/bammi/etc/src/master/atari/co/_normdf.cpp,v
  305. retrieving revision 1.5
  306. diff -c -r1.5 _normdf.cpp
  307. *** 1.5    1992/10/09 20:35:29
  308. --- _normdf.cpp    1992/11/06 23:02:09
  309. ***************
  310. *** 7,13 ****
  311. --- 7,18 ----
  312.   |
  313.   | written by Kai-Uwe Bloem (I5110401@dbstu1.bitnet).
  314.   | Based on a 80x86 floating point packet from comp.os.minix, written by P.Housel
  315. + | patched by Olaf Flebbe (flebbe@tat.physik.uni-tuebingen.de)
  316.   |
  317. + | Revision 1.6.1 olaf 10-92:
  318. + |  + corrected rounding in tie case: round up, not down.
  319. + |    (needed for enquire 4.3)
  320. + |
  321.   | Revision 1.6, kub 04-90 :
  322.   | more robust handling exponent and sign handling for 32 bit integers. There
  323.   | are now overflow tests for 32 bit exponents, and bit 31 of the sign flag
  324. ***************
  325. *** 129,136 ****
  326.       bge    8f        | round down - no action neccessary
  327.       negb    d1
  328.       bvc    7f        | round up
  329. !     bclr    #0,d5        | tie case - round to even
  330. !     bra    8f
  331.   7:
  332.       clrl    d1        | zero rounding bits
  333.       addl    #1,d5
  334. --- 134,144 ----
  335.       bge    8f        | round down - no action neccessary
  336.       negb    d1
  337.       bvc    7f        | round up
  338. !         movew   d5,d1           | tie case - round to even 
  339. !                                 | dont need rounding bits any more
  340. !         andw    #1,d1           | check if even
  341. !         beq     8f              | mantissa is even - no action necessary
  342. !                                 | fall through
  343.   7:
  344.       clrl    d1        | zero rounding bits
  345.       addl    #1,d5
  346. ===================================================================
  347. RCS file: /net/acae127/home/bammi/etc/src/master/atari/co/_normsf.cpp,v
  348. retrieving revision 1.2
  349. diff -c -r1.2 _normsf.cpp
  350. *** 1.2    1992/10/09 20:35:29
  351. --- _normsf.cpp    1992/11/06 23:02:09
  352. ***************
  353. *** 7,13 ****
  354. --- 7,17 ----
  355.   |
  356.   | written by Kai-Uwe Bloem (I5110401@dbstu1.bitnet).
  357.   | Based on a 80x86 floating point packet from comp.os.minix, written by P.Housel
  358. + | patched by Olaf Flebbe (flebbe@tat.physik.uni-tuebingen.de)
  359.   |
  360. + | Revision 1.4.1 olaf 10-92:
  361. + |  + corrected rounding in tie case: round up, not down.
  362. + |    (needed for enquire 4.3)
  363.   |
  364.   | Revision 1.4, kub 03-90 :
  365.   | export ___normsf entry to C language. Rename the internal entry to a name
  366. ***************
  367. *** 86,93 ****
  368.       bge    6f        | round down - no action neccessary
  369.       negb    d1
  370.       bvc    5f        | round up
  371. !     bclr    #0,d4        | tie case - round to even
  372. !     bra    6f
  373.   5:
  374.       clrw    d1        | zero rounding bits
  375.       addl    #1,d4
  376. --- 90,101 ----
  377.       bge    6f        | round down - no action neccessary
  378.       negb    d1
  379.       bvc    5f        | round up
  380. !     movew   d4,d1           | tie case - round to even
  381. !                                 | dont need rounding bits any more
  382. !     andw    #1,d1           | check if even        
  383. !     beq    6f              | mantissa is even - no action necessary
  384. !                                 | fall through
  385.   5:
  386.       clrw    d1        | zero rounding bits
  387.       addl    #1,d4
  388. ===================================================================
  389. RCS file: /net/acae127/home/bammi/etc/src/master/atari/co/bcopy.s,v
  390. retrieving revision 1.6
  391. diff -c -r1.6 bcopy.s
  392. *** 1.6    1992/06/01 01:54:10
  393. --- bcopy.s    1992/11/06 23:02:09
  394. ***************
  395. *** 56,79 ****
  396.       movb    d0,d1
  397.       lsrl    #8,d0        | number of 256 bytes blocks
  398.       jeq    less256
  399. !     movml    d3-d7/a2-a6,sp@-    | d2 is already saved
  400.   copy256:
  401. !     movml    a0@+,d2-d7/a2-a6    | copy 5*44+36=256 bytes
  402. !     movml    d2-d7/a2-a6,a1@
  403. !     movml    a0@+,d2-d7/a2-a6
  404. !     movml    d2-d7/a2-a6,a1@(44)
  405. !     movml    a0@+,d2-d7/a2-a6
  406. !     movml    d2-d7/a2-a6,a1@(88)
  407. !     movml    a0@+,d2-d7/a2-a6
  408. !     movml    d2-d7/a2-a6,a1@(132)
  409. !     movml    a0@+,d2-d7/a2-a6
  410. !     movml    d2-d7/a2-a6,a1@(176)
  411. !     movml    a0@+,d2-d7/a2-a4
  412. !     movml    d2-d7/a2-a4,a1@(220)
  413.       lea    a1@(256),a1        | increment dest, src is already
  414.       subql    #1,d0
  415.       jne    copy256         | next, please
  416. !     movml    sp@+,d3-d7/a2-a6
  417.   less256:            | copy 16 bytes blocks
  418.       movw    d1,d0
  419.       lsrw    #2,d0        | number of 4 bytes blocks
  420. --- 56,80 ----
  421.       movb    d0,d1
  422.       lsrl    #8,d0        | number of 256 bytes blocks
  423.       jeq    less256
  424. !     movml    d1/d3-d7/a2/a3/a5/a6,sp@-    | d2 is already saved
  425. !                     | exclude a4 because of -mbaserel
  426.   copy256:
  427. !     movml    a0@+,d1-d7/a2/a3/a5/a6    | copy 5*44+36=256 bytes
  428. !     movml    d1-d7/a2/a3/a5/a6,a1@
  429. !     movml    a0@+,d1-d7/a2/a3/a5/a6
  430. !     movml    d1-d7/a2/a3/a5/a6,a1@(44)
  431. !     movml    a0@+,d1-d7/a2/a3/a5/a6
  432. !     movml    d1-d7/a2/a3/a5/a6,a1@(88)
  433. !     movml    a0@+,d1-d7/a2/a3/a5/a6
  434. !     movml    d1-d7/a2/a3/a5/a6,a1@(132)
  435. !     movml    a0@+,d1-d7/a2/a3/a5/a6
  436. !     movml    d1-d7/a2/a3/a5/a6,a1@(176)
  437. !     movml    a0@+,d1-d7/a2-a3
  438. !     movml    d1-d7/a2-a3,a1@(220)
  439.       lea    a1@(256),a1        | increment dest, src is already
  440.       subql    #1,d0
  441.       jne    copy256         | next, please
  442. !     movml    sp@+,d1/d3-d7/a2/a3/a5/a6
  443.   less256:            | copy 16 bytes blocks
  444.       movw    d1,d0
  445.       lsrw    #2,d0        | number of 4 bytes blocks
  446. ***************
  447. *** 146,169 ****
  448.       movb    d0,d1
  449.       lsrl    #8,d0
  450.       jeq    less256_d
  451. !     movml    d3-d7/a2-a6,sp@-
  452.   copy256_d:
  453. !     movml    a0@(-44),d2-d7/a2-a6
  454. !     movml    d2-d7/a2-a6,a1@-
  455. !     movml    a0@(-88),d2-d7/a2-a6
  456. !     movml    d2-d7/a2-a6,a1@-
  457. !     movml    a0@(-132),d2-d7/a2-a6
  458. !     movml    d2-d7/a2-a6,a1@-
  459. !     movml    a0@(-176),d2-d7/a2-a6
  460. !     movml    d2-d7/a2-a6,a1@-
  461. !     movml    a0@(-220),d2-d7/a2-a6
  462. !     movml    d2-d7/a2-a6,a1@-
  463. !     movml    a0@(-256),d2-d7/a2-a4
  464. !     movml    d2-d7/a2-a4,a1@-
  465.       lea    a0@(-256),a0
  466.       subql    #1,d0
  467.       jne    copy256_d
  468. !     movml    sp@+,d3-d7/a2-a6
  469.   less256_d:
  470.       movw    d1,d0
  471.       lsrw    #2,d0
  472. --- 147,170 ----
  473.       movb    d0,d1
  474.       lsrl    #8,d0
  475.       jeq    less256_d
  476. !     movml    d1/d3-d7/a2/a3/a5/a6,sp@-
  477.   copy256_d:
  478. !     movml    a0@(-44),d1-d7/a2/a3/a5/a6
  479. !     movml    d1-d7/a2/a3/a5/a6,a1@-
  480. !     movml    a0@(-88),d1-d7/a2/a3/a5/a6
  481. !     movml    d1-d7/a2/a3/a5/a6,a1@-
  482. !     movml    a0@(-132),d1-d7/a2/a3/a5/a6
  483. !     movml    d1-d7/a2/a3/a5/a6,a1@-
  484. !     movml    a0@(-176),d1-d7/a2/a3/a5/a6
  485. !     movml    d1-d7/a2/a3/a5/a6,a1@-
  486. !     movml    a0@(-220),d1-d7/a2/a3/a5/a6
  487. !     movml    d1-d7/a2/a3/a5/a6,a1@-
  488. !     movml    a0@(-256),d1-d7/a2-a3
  489. !     movml    d1-d7/a2-a3,a1@-
  490.       lea    a0@(-256),a0
  491.       subql    #1,d0
  492.       jne    copy256_d
  493. !     movml    sp@+,d1/d3-d7/a2/a3/a5/a6
  494.   less256_d:
  495.       movw    d1,d0
  496.       lsrw    #2,d0
  497. ===================================================================
  498. RCS file: /net/acae127/home/bammi/etc/src/master/atari/co/bzero.cpp,v
  499. retrieving revision 1.2
  500. diff -c -r1.2 bzero.cpp
  501. *** 1.2    1992/06/01 01:54:10
  502. --- bzero.cpp    1992/11/06 23:02:09
  503. ***************
  504. *** 59,65 ****
  505.       movb    d1,d0
  506.       lsrl    #8,d1        | number of 256 bytes blocks
  507.       jeq    less256
  508. !     movml    d3-d7/a2-a6,sp@-    | d2 is already saved
  509.       movl    d2,d3
  510.       movl    d2,d4
  511.       movl    d2,d5
  512. --- 59,67 ----
  513.       movb    d1,d0
  514.       lsrl    #8,d1        | number of 256 bytes blocks
  515.       jeq    less256
  516. !     movml    d0/d3-d7/a2/a3/a5/a6,sp@-    | d2 is already saved
  517. !                 | exclude a4 because of -mbaserel
  518. !     movl    d2,d0
  519.       movl    d2,d3
  520.       movl    d2,d4
  521.       movl    d2,d5
  522. ***************
  523. *** 67,85 ****
  524.       movl    d2,d7
  525.       movl    d2,a2
  526.       movl    d2,a3
  527. -     movl    d2,a4
  528.       movl    d2,a5
  529.       movl    d2,a6
  530.   set256:
  531. !     movml    d2-d7/a2-a6,a0@-    | set 5*44+36=256 bytes
  532. !     movml    d2-d7/a2-a6,a0@-
  533. !     movml    d2-d7/a2-a6,a0@-
  534. !     movml    d2-d7/a2-a6,a0@-
  535. !     movml    d2-d7/a2-a6,a0@-
  536. !     movml    d2-d7/a2-a4,a0@-
  537.       subql    #1,d1
  538.       jne    set256            | next, please
  539. !     movml    sp@+,d3-d7/a2-a6
  540.   less256:            | set 16 bytes blocks
  541.       movw    d0,sp@-     | save length below 256 for last 3 bytes
  542.       lsrw    #2,d0        | number of 4 bytes blocks
  543. --- 69,86 ----
  544.       movl    d2,d7
  545.       movl    d2,a2
  546.       movl    d2,a3
  547.       movl    d2,a5
  548.       movl    d2,a6
  549.   set256:
  550. !     movml    d0/d2-d7/a2/a3/a5/a6,a0@-    | set 5*44+36=256 bytes
  551. !     movml    d0/d2-d7/a2/a3/a5/a6,a0@-
  552. !     movml    d0/d2-d7/a2/a3/a5/a6,a0@-
  553. !     movml    d0/d2-d7/a2/a3/a5/a6,a0@-
  554. !     movml    d0/d2-d7/a2/a3/a5/a6,a0@-
  555. !     movml    d0/d2-d7/a2-a3,a0@-
  556.       subql    #1,d1
  557.       jne    set256            | next, please
  558. !     movml    sp@+,d0/d3-d7/a2/a3/a5/a6
  559.   less256:            | set 16 bytes blocks
  560.       movw    d0,sp@-     | save length below 256 for last 3 bytes
  561.       lsrw    #2,d0        | number of 4 bytes blocks
  562. ===================================================================
  563. RCS file: /net/acae127/home/bammi/etc/src/master/atari/co/doprnt.c,v
  564. retrieving revision 1.17
  565. diff -c -r1.17 doprnt.c
  566. *** 1.17    1992/10/09 20:35:29
  567. --- doprnt.c    1992/11/08 00:02:47
  568. ***************
  569. *** 45,50 ****
  570. --- 45,51 ----
  571.   static char sccsid[] = "@(#)doprnt.c    5.37 (Berkeley) 3/26/89";
  572.   #endif /* LIBC_SCCS */
  573.   
  574. + #include <compiler.h>
  575.   #ifdef __TURBOC__
  576.   #include <sys\types.h>
  577.   #else
  578. ***************
  579. *** 163,169 ****
  580.            clrw    %0;
  581.                   swap    %0"                    \
  582.                : "=d"((long)NUMBER), "=g"(i)            \
  583. !          : "0"((long)NUMBER), "g"((short)BASE));    \
  584.           *--BUF = digs[i];                    \
  585.       } while(NUMBER);                        \
  586.   }
  587. --- 164,170 ----
  588.            clrw    %0;
  589.                   swap    %0"                    \
  590.                : "=d"((long)NUMBER), "=g"(i)            \
  591. !          : "0"((long)NUMBER), "dm"((short)BASE));    \
  592.           *--BUF = digs[i];                    \
  593.       } while(NUMBER);                        \
  594.   }
  595. ***************
  596. *** 330,336 ****
  597.                * don't do unrealistic precision; just pad it with
  598.                * zeroes later, so buffer size stays rational.
  599.                */
  600. !             if (prec > MAXFRACT) {
  601.                   if ((*fmt != 'g' && *fmt != 'G') || (flags&ALT))
  602.                       fpprec = prec - MAXFRACT;
  603.                   prec = MAXFRACT;
  604. --- 331,337 ----
  605.                * don't do unrealistic precision; just pad it with
  606.                * zeroes later, so buffer size stays rational.
  607.                */
  608. !             if (prec > (MAXEXP - MAXFRACT)) {
  609.                   if ((*fmt != 'g' && *fmt != 'G') || (flags&ALT))
  610.                       fpprec = prec - MAXFRACT;
  611.                   prec = MAXFRACT;
  612. ***************
  613. *** 545,551 ****
  614.   {
  615.       register char *p, *t;
  616.       register double fract;
  617. !     int dotrim, expcnt, gformat, /* mjr++ : */ old_prec;
  618.       double integer, tmp, modf __PROTO((double, double *));
  619.       char *exponent __PROTO((char *, int, int)),
  620.            *_round __PROTO((double, int *, char *, char *, int, char *));
  621. --- 546,552 ----
  622.   {
  623.       register char *p, *t;
  624.       register double fract;
  625. !     int dotrim, expcnt, gformat;
  626.       double integer, tmp, modf __PROTO((double, double *));
  627.       char *exponent __PROTO((char *, int, int)),
  628.            *_round __PROTO((double, int *, char *, char *, int, char *));
  629. ***************
  630. *** 555,561 ****
  631.   
  632.       /* get an extra slot for rounding. */
  633.       t = ++startp;
  634. ! #define DBL_EPSILON 1.1107651257113995e-16 /* mjr ++ /
  635.       /*
  636.        * get integer portion of number; put into the end of the buffer; the
  637.        * .01 is added for modf(356.0 / 10, &integer) returning .59999999...
  638. --- 556,562 ----
  639.   
  640.       /* get an extra slot for rounding. */
  641.       t = ++startp;
  642. ! /* jrb -- #define DBL_EPSILON 1.1107651257113995e-16 /* mjr ++ /
  643.       /*
  644.        * get integer portion of number; put into the end of the buffer; the
  645.        * .01 is added for modf(356.0 / 10, &integer) returning .59999999...
  646. ***************
  647. *** 562,568 ****
  648.        */
  649.       for (p = endp - 1; integer; ++expcnt) {
  650.           tmp = modf(integer / 10, &integer);
  651. !         *p-- = tochar((int)((tmp + DBL_EPSILON) * 10));
  652.       }
  653.       switch(fmtch) {
  654.       case 'f':
  655. --- 563,572 ----
  656.        */
  657.       for (p = endp - 1; integer; ++expcnt) {
  658.           tmp = modf(integer / 10, &integer);
  659. !         *p-- = tochar((int)((tmp + .01) * 10));
  660. ! /* await michals advise on this    -- in the mean while use above line
  661. !     *p-- = tochar((int)((tmp + DBL_EPSILON) * 10));
  662. !  */
  663.       }
  664.       switch(fmtch) {
  665.       case 'f':
  666. ***************
  667. *** 654,661 ****
  668.           break;
  669.       case 'g':
  670.       case 'G':
  671. -         old_prec = min(prec,15);    /* mjr++, avoid "precision" that */
  672. -                         /* cannot be numerically resolved */
  673.           /* a precision of 0 is treated as a precision of 1. */
  674.           if (!prec)
  675.               ++prec;
  676. --- 658,663 ----
  677. ***************
  678. *** 693,699 ****
  679.           if (prec || flags&ALT) {
  680.               dotrim = 1;
  681.               *t++ = '.';
  682. -             old_prec ++; /* mjr++ */
  683.           }
  684.           else
  685.               dotrim = 0;
  686. --- 695,700 ----
  687. ***************
  688. *** 722,729 ****
  689.           if (flags&ALT)
  690.               for (; prec--; *t++ = '0');
  691.           else if (dotrim) {
  692. -             if( (int)(t-startp) > old_prec ) /* mjr++ */
  693. -                 t = startp + old_prec;
  694.               while (t > startp && *--t == '0');
  695.               if (*t != '.')
  696.                   ++t;
  697. --- 723,728 ----
  698. ===================================================================
  699. RCS file: /net/acae127/home/bammi/etc/src/master/atari/co/gnulib2.c,v
  700. retrieving revision 1.13
  701. diff -c -r1.13 gnulib2.c
  702. *** 1.13    1992/09/14 14:56:40
  703. --- gnulib2.c    1992/11/08 00:02:51
  704. ***************
  705. *** 52,57 ****
  706. --- 52,58 ----
  707.   #define L_lesf2
  708.   #endif
  709.   #define L_fxussfsi
  710. + #define L_gccbcmp
  711.   
  712.   #endif /* __DEF_ALL__ */
  713.   
  714. ***************
  715. *** 1641,1644 ****
  716. --- 1642,1668 ----
  717.       return (SItype) (a + LONG_MIN) - LONG_MIN;
  718.     return (SItype) a;
  719.   }
  720. + #endif
  721. + #ifdef L_gccbcmp
  722. + /* Like bcmp except the sign is meaningful.
  723. +    Reult is negative if S1 is less than S2,
  724. +    positive if S1 is greater, 0 if S1 and S2 are equal.  */
  725. + int
  726. + __gcc_bcmp (s1, s2, size)
  727. +      unsigned char *s1, *s2;
  728. +      size_t size;
  729. + {
  730. +   while (size > 0)
  731. +     {
  732. +       unsigned char c1 = *s1++, c2 = *s2++;
  733. +       if (c1 != c2)
  734. +     return c1 - c2;
  735. +       size--;
  736. +     }
  737. +   return 0;
  738. + }
  739.   #endif
  740. ===================================================================
  741. RCS file: /net/acae127/home/bammi/etc/src/master/atari/co/regexp.c,v
  742. retrieving revision 1.5
  743. diff -c -r1.5 regexp.c
  744. *** 1.5    1992/10/09 20:35:29
  745. --- regexp.c    1992/11/06 23:02:09
  746. ***************
  747. *** 32,38 ****
  748.   #include <string.h>
  749.   #include <regexp.h>
  750.   #include <stdio.h>
  751. ! #include <types.h>
  752.   #ifndef _COMPILER_H
  753.   #include <compiler.h>
  754.   #endif
  755. --- 32,38 ----
  756.   #include <string.h>
  757.   #include <regexp.h>
  758.   #include <stdio.h>
  759. ! #include <sys/types.h>
  760.   #ifndef _COMPILER_H
  761.   #include <compiler.h>
  762.   #endif
  763. ***************
  764. *** 218,224 ****
  765.       RFAIL("regexp too big");
  766.   
  767.     /* Allocate space. */
  768. !   r = (regexp *) malloc(sizeof(regexp) + (unsigned) regsize);
  769.     if (r == (regexp *)NULL) RFAIL("out of space");
  770.   
  771.     /* Second pass: emit code. */
  772. --- 218,224 ----
  773.       RFAIL("regexp too big");
  774.   
  775.     /* Allocate space. */
  776. !   r = (regexp *) malloc(sizeof(regexp) + (size_t) regsize);
  777.     if (r == (regexp *)NULL) RFAIL("out of space");
  778.   
  779.     /* Second pass: emit code. */
  780. ***************
  781. *** 871,879 ****
  782.           case STAR:
  783.           case PLUS:{
  784.               register char nextch;
  785. !             register size_t no;
  786.               register char *save;
  787. !             register size_t min;
  788.   
  789.               /* Lookahead to avoid useless match attempts
  790.                * when we know what character comes next. */
  791. --- 871,879 ----
  792.           case STAR:
  793.           case PLUS:{
  794.               register char nextch;
  795. !             register long no;
  796.               register char *save;
  797. !             register long min;
  798.   
  799.               /* Lookahead to avoid useless match attempts
  800.                * when we know what character comes next. */
  801. ***************
  802. *** 977,983 ****
  803.   
  804.   #ifdef DEBUG
  805.   
  806. ! STATIC char *regprop();
  807.   
  808.   /*
  809.    - regdump - dump a regexp onto stdout in vaguely comprehensible form
  810. --- 977,983 ----
  811.   
  812.   #ifdef DEBUG
  813.   
  814. ! static char *regprop();
  815.   
  816.   /*
  817.    - regdump - dump a regexp onto stdout in vaguely comprehensible form
  818.