This is the mail archive of the 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

Jim Wilson <> writes:

> 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.

That is currently the case, but I know Richard Henderson was talking
about using BImode for C99 _Bool, and related types in other
languages.  Which probably requires fixing all the same bugs as the
XFmode stuff does.

> 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.

To be honest, I thought the meaning of GET_MODE_BITSIZE was *already*
the precision, and it just happened that we had no types with padding
bits to date.  (I thought this because GET_MODE_BITSIZE is compared
against TYPE_PRECISION in several places.)

I am happy to help fix bugs, as I said in the earlier message.


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