home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #31 / NN_1992_31.iso / spool / gnu / gcc / bug / 3041 < prev    next >
Encoding:
Text File  |  1992-12-22  |  3.3 KB  |  93 lines

  1. Newsgroups: gnu.gcc.bug
  2. Path: sparky!uunet!zaphod.mps.ohio-state.edu!cis.ohio-state.edu!isa.DE!luik
  3. From: luik@isa.DE (Andreas Luik)
  4. Subject: BITS_PER_UNIT == 8 assumed in float machine mode definition
  5. Message-ID: <9212221747.AA11912@einstein.isa.de>
  6. Sender: gnulists@ai.mit.edu
  7. Organization: GNUs Not Usenet
  8. Distribution: gnu
  9. Date: Tue, 22 Dec 1992 19:47:57 GMT
  10. Approved: bug-gcc@prep.ai.mit.edu
  11. Lines: 80
  12.  
  13. Program:    gcc
  14. Version:    2.3.2
  15.  
  16. Host:        sparc-sun-sunos4.1.3
  17. Target:        own
  18. Area:        cc1
  19.  
  20. Input file:     all
  21. gcc command:    n.a.
  22.  
  23. Synopsis:    BITS_PER_UNIT == 8 assumed in float machine mode definition
  24.  
  25. Description:
  26.  
  27.     machmode.def is used to define the machine modes. The float machine
  28.     modes are defined using fixes sizes of 4, 8, 12 and 16 "bytes", but
  29.     these "bytes" are units in the size defined by BITS_PER_UNIT. If this
  30.     is defined as 16, then the smalles available float mode is 4 * 16 = 64
  31.     bits wide. That's too much. At least the sizes of the float modes
  32.     should depend on the BITS_PER_UNIT definition to simplify porting gcc
  33.     to a target machine with word addressing.
  34.  
  35. Fix:
  36.  
  37.     Use a fix similar to the following:
  38.  
  39. *** machmode.def.ORIG    Fri May 31 22:43:32 1991
  40. --- machmode.def    Mon Dec 21 01:36:57 1992
  41. ***************
  42. *** 73,87 ****
  43.   DEF_MACHMODE (DImode, "DI", MODE_INT, 8, 8, TImode)
  44.   DEF_MACHMODE (TImode, "TI", MODE_INT, 16, 16, VOIDmode)
  45.   
  46. ! DEF_MACHMODE (SFmode, "SF", MODE_FLOAT, 4, 4, DFmode)
  47. ! DEF_MACHMODE (DFmode, "DF", MODE_FLOAT, 8, 8, XFmode)
  48. ! DEF_MACHMODE (XFmode, "XF", MODE_FLOAT, 12, 12, TFmode)   /* IEEE extended */
  49. ! DEF_MACHMODE (TFmode, "TF", MODE_FLOAT, 16, 16, VOIDmode)
  50.   
  51. ! DEF_MACHMODE (SCmode, "SC", MODE_COMPLEX_FLOAT, 8, 4, DCmode)
  52. ! DEF_MACHMODE (DCmode, "DC", MODE_COMPLEX_FLOAT, 16, 8, XCmode)
  53. ! DEF_MACHMODE (XCmode, "XC", MODE_COMPLEX_FLOAT, 24, 12, TCmode)
  54. ! DEF_MACHMODE (TCmode, "TC", MODE_COMPLEX_FLOAT, 32, 16, VOIDmode)
  55.   
  56.   /* BLKmode is used for structures, arrays, etc.
  57.      that fit no more specific mode.  */
  58. --- 73,91 ----
  59.   DEF_MACHMODE (DImode, "DI", MODE_INT, 8, 8, TImode)
  60.   DEF_MACHMODE (TImode, "TI", MODE_INT, 16, 16, VOIDmode)
  61.   
  62. ! #define BYTES(B) ((B) * 8 / BITS_PER_UNIT)
  63.   
  64. ! DEF_MACHMODE (SFmode, "SF", MODE_FLOAT, BYTES(4), BYTES(4), DFmode)
  65. ! DEF_MACHMODE (DFmode, "DF", MODE_FLOAT, BYTES(8), BYTES(8), XFmode)
  66. ! DEF_MACHMODE (XFmode, "XF", MODE_FLOAT, BYTES(12), BYTES(12), TFmode)   /* IEEE extended */
  67. ! DEF_MACHMODE (TFmode, "TF", MODE_FLOAT, BYTES(16), BYTES(16), VOIDmode)
  68. ! DEF_MACHMODE (SCmode, "SC", MODE_COMPLEX_FLOAT, BYTES(8), BYTES(4), DCmode)
  69. ! DEF_MACHMODE (DCmode, "DC", MODE_COMPLEX_FLOAT, BYTES(16), BYTES(8), XCmode)
  70. ! DEF_MACHMODE (XCmode, "XC", MODE_COMPLEX_FLOAT, BYTES(24), BYTES(12), TCmode)
  71. ! DEF_MACHMODE (TCmode, "TC", MODE_COMPLEX_FLOAT, BYTES(32), BYTES(16), VOIDmode)
  72. ! #undef BYTES
  73.   
  74.   /* BLKmode is used for structures, arrays, etc.
  75.      that fit no more specific mode.  */
  76.  
  77.  
  78. Comments:
  79.  
  80.     gcc is really great: I had only very little problems getting it
  81.     running on this 16-bit processor with word addressing only. I know
  82.     that gcc was not designed for such exotic processors but will
  83.     nevertheless send you my bug reports and comments hoping they will
  84.     help improving gcc.
  85.  
  86.  
  87. -- 
  88. Andreas Luik                E-Mail: luik@isa.de
  89. (postmaster@isa.de)         UUCP:   ...!{uunet!unido,pyramid}!isaak!luik
  90.  
  91.