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