IA64 bootstrap problem for Ada

Jim Wilson wilson@specifixinc.com
Fri Oct 31 10:56:00 GMT 2003


Zack Weinberg wrote:
> This is a somewhat new thing.  It isn't inconsistent.  It means the
> mode has 96 bits of value but takes up 16*BITS_PER_UNIT (128) bits of
> storage.  Think TYPE_SIZE versus TYPE_PRECISION.  BImode has been like
> this since its invention.  XFmode being like this is new.  Other modes
> are likely to take advantage of this in the future.

I think it is misleading to mention BImode.  BImode is used in only 
special restricted circumstances.  It is never written into object files 
for instance, and does not correspond to any C language type.  Also, 
BImode is a different special case.  BImode has a fractional size, 0.125 
bytes, and we can't represent fractional byte sizes, so it was rounded 
up to 1 byte.

The XFmode case is very different.  You have changed the meaning of 
GET_MODE_BITSIZE.  It no longer holds the bit size, it holds the 
precision.  This change was not announced very well, and hasn't been 
documented in the manual.  This change has created lots of latent bugs 
for the IA-64 port, and I think you should be on the hook for helping to 
get them fixed.

Kenner, FYI, I've been discussing these changes with Zack also.  See for 
  instance the "Need advice with store_bit_field and its call chain" thread.

I am working on a debian-testing OS install so I can do a bootstrap with 
Ada on my IA-64 machine.
-- 
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com



More information about the Gcc mailing list