This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: IA64 bootstrap problem for Ada


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



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]