home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #18 / NN_1992_18.iso / spool / comp / arch / 8912 < prev    next >
Encoding:
Internet Message Format  |  1992-08-14  |  2.2 KB

  1. Path: sparky!uunet!mcsun!sun4nl!moene!moene.indiv.nluug.nl
  2. From: toon@moene.indiv.nluug.nl (Toon Moene)
  3. Newsgroups: comp.arch
  4. Subject: Re: Unnormalized FP and a PDP-11 bug (Re: Algorithm for bit finding)
  5. Message-ID: <346@moene.indiv.nluug.nl>
  6. Date: 14 Aug 92 22:02:42 GMT
  7. References: <1992Aug12.075553.1@zodiac.rutgers.edu>
  8. Sender: toon@moene.indiv.nluug.nl
  9. Organization: Moene Computational Physics, Amsterdam, The Netherlands
  10. Lines: 33
  11.  
  12. In article <1992Aug12.075553.1@zodiac.rutgers.edu>  
  13. leichter@zodiac.rutgers.edu writes:
  14. [... Interesting story about FP faults generated by copying bytes
  15.      with FP move instructions deleted ... ]
  16.  
  17. > (My favorite story of a simliar problem is on the CDC 6000 series.  They
  18. > use 1's complement arithmetic, and when you load a B register, you can't
  19. > really load a constant - you load contant plus some other B register.  
  20. > No problem:  B0 is always 0, so you add it.  Except that in one's 
  21. > complement there is also -0 (all 1 bits), and the arithmetic unit tries 
  22. > very hard never to generate -0 as an output.  In fact, 0+(-0) is 0.  So 
  23. > you can't load -0 that way!  The trick is to realize that the REAL 
  24. > identity for addition on this machine is -0, and get that into a 
  25. > register (using bit-wise operations) for use in place of 0 when loading 
  26. > data that isn't really numbers.)
  27.  
  28. Hm, I wonder why you would want -0 in a 18-bit index register - masking  
  29. instructions only operated on the 60-bit registers ...
  30.  
  31. I've another horror story on one's complement 'arithmetic'. On the old  
  32. UNIVAC 1100 series computers (36-bit one's complement machines), there  
  33. once was a FORTRAN compiler that stored the 'no-dead-code-in-this-basic-
  34. block' flag in a double (72-bit) integer. Now for optimization, they first  
  35. tested this integer against zero, before examining every bit to determine  
  36. the basic blocks to remove :-) It was certainly interesting hearing this  
  37. customer talk about his large FORTRAN subroutine diminished to a few  
  38. instructions by this compiler ...
  39.  
  40. --
  41. Toon Moene (toon@moene.indiv.nluug.nl)
  42. Kantershof 269, 1104 GN  Amsterdam, The Netherlands
  43. Tel.: + 31 20 6982029; Fax: + 31 20 6003411
  44. No Disclaimers; a NeXT at home protects against this occupational hazard.
  45.