🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by Andreas Luik Tue, 22 Dec 1992 19:47
BITS_PER_UNIT == 8 assumed in float machine mode definition
#1415
Author: Andreas Luik
Date: Tue, 22 Dec 1992 19:47
79 lines
3440 bytes
Program:	gcc
Version:	2.3.2

Host:		sparc-sun-sunos4.1.3
Target:		own
Area:		cc1

Input file: 	all
gcc command:	n.a.

Synopsis:	BITS_PER_UNIT == 8 assumed in float machine mode definition

Description:

    machmode.def is used to define the machine modes. The float machine
    modes are defined using fixes sizes of 4, 8, 12 and 16 "bytes", but
    these "bytes" are units in the size defined by BITS_PER_UNIT. If this
    is defined as 16, then the smalles available float mode is 4 * 16 = 64
    bits wide. That's too much. At least the sizes of the float modes
    should depend on the BITS_PER_UNIT definition to simplify porting gcc
    to a target machine with word addressing.

Fix:

    Use a fix similar to the following:

*** machmode.def.ORIG	Fri May 31 22:43:32 1991
--- machmode.def	Mon Dec 21 01:36:57 1992
***************
*** 73,87 ****
  DEF_MACHMODE (DImode, "DI", MODE_INT, 8, 8, TImode)
  DEF_MACHMODE (TImode, "TI", MODE_INT, 16, 16, VOIDmode)
  
! DEF_MACHMODE (SFmode, "SF", MODE_FLOAT, 4, 4, DFmode)
! DEF_MACHMODE (DFmode, "DF", MODE_FLOAT, 8, 8, XFmode)
! DEF_MACHMODE (XFmode, "XF", MODE_FLOAT, 12, 12, TFmode)   /* IEEE extended */
! DEF_MACHMODE (TFmode, "TF", MODE_FLOAT, 16, 16, VOIDmode)
  
! DEF_MACHMODE (SCmode, "SC", MODE_COMPLEX_FLOAT, 8, 4, DCmode)
! DEF_MACHMODE (DCmode, "DC", MODE_COMPLEX_FLOAT, 16, 8, XCmode)
! DEF_MACHMODE (XCmode, "XC", MODE_COMPLEX_FLOAT, 24, 12, TCmode)
! DEF_MACHMODE (TCmode, "TC", MODE_COMPLEX_FLOAT, 32, 16, VOIDmode)
  
  /* BLKmode is used for structures, arrays, etc.
     that fit no more specific mode.  */
--- 73,91 ----
  DEF_MACHMODE (DImode, "DI", MODE_INT, 8, 8, TImode)
  DEF_MACHMODE (TImode, "TI", MODE_INT, 16, 16, VOIDmode)
  
! #define BYTES(B) ((B) * 8 / BITS_PER_UNIT)
  
! DEF_MACHMODE (SFmode, "SF", MODE_FLOAT, BYTES(4), BYTES(4), DFmode)
! DEF_MACHMODE (DFmode, "DF", MODE_FLOAT, BYTES(8), BYTES(8), XFmode)
! DEF_MACHMODE (XFmode, "XF", MODE_FLOAT, BYTES(12), BYTES(12), TFmode)   /* IEEE extended */
! DEF_MACHMODE (TFmode, "TF", MODE_FLOAT, BYTES(16), BYTES(16), VOIDmode)
! 
! DEF_MACHMODE (SCmode, "SC", MODE_COMPLEX_FLOAT, BYTES(8), BYTES(4), DCmode)
! DEF_MACHMODE (DCmode, "DC", MODE_COMPLEX_FLOAT, BYTES(16), BYTES(8), XCmode)
! DEF_MACHMODE (XCmode, "XC", MODE_COMPLEX_FLOAT, BYTES(24), BYTES(12), TCmode)
! DEF_MACHMODE (TCmode, "TC", MODE_COMPLEX_FLOAT, BYTES(32), BYTES(16), VOIDmode)
! 
! #undef BYTES
  
  /* BLKmode is used for structures, arrays, etc.
     that fit no more specific mode.  */


Comments:

    gcc is really great: I had only very little problems getting it
    running on this 16-bit processor with word addressing only. I know
    that gcc was not designed for such exotic processors but will
    nevertheless send you my bug reports and comments hoping they will
    help improving gcc.


-- 
Andreas Luik                E-Mail: luik@isa.de
(postmaster@isa.de)         UUCP:   ...!{uunet!unido,pyramid}!isaak!luik
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads