From: anton@mips.complang.tuwien.ac.at   
      
   Thomas Koenig writes:   
   >The Cray-1 had double precision numbers, with software support   
   >only. They had to in order to conform to the FORTRAN standards   
   >of storage association.   
      
   And my guess is that the word order for double-precision is also   
   specified by FORTRAN. It probably is the word order of the IBM 704   
   (the machine for which Fortran was designed), and that probably is   
   big-endian (the higher-order bits of the mantissa are in the word with   
   the lower address), guessed from the fact that the IBM S/360 has   
   big-endian byte order.   
      
   Interestingly, for FP formats that have the sequence of bits   
      
   sign|exponent|mantissa   
      
   with the highest-order mantissa bits leftmost, the exponent left of   
   that, and the sign left of that, and where the double-precision format   
   just has a longer mantissa then the single-precision format, storing   
   DP FP numbers as two words in big-endian format (i.e., the leftmost   
   word at the lower address) has a similar property as little-endian has   
   for intergers:   
      
   You can load a number that fits into the smaller container at the same   
   address with the appropriate shorter load, and get the correct result.   
      
   So the choice of big-endian in the S/360 may have to do with FP in   
   addition to unpacked decimal data. On the PDP-11, 8008, and 6502,   
   where binary integers dominated and unpacked decimal data played no   
   role, little-endian was chosen.   
      
   - anton   
   --   
   'Anyone trying for "industrial quality" ISA should avoid undefined behavior.'   
    Mitch Alsup,    
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|