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]

Re: Ada bootstrap failure on ia64


>>>>> Andreas Schwab writes:

Andreas> I'm trying to bootstrap Ada on ia64 (using a cross compiler from ia32),
Andreas> but I get an ICE in gnat when compiling a-nuflra.adb.  The problem is that
Andreas> move_by_pieces_ninsns is called with align = 1, but there is no mode with
Andreas> 1 bit alignment.  The function is called by emit_block_move, which iself
Andreas> is called with

Andreas> x = (mem/s:BLK (reg/f:DI 381) [3])
Andreas> y = (mem/s:BLK (reg/f:DI 336 virtual-stack-vars) [3 outs+0 S32 A128])
Andreas> size = (const_int 32 [0x20])

Andreas> and align = 1 comes from MEM_ALIGN (x).  Does MEM_ALIGN return the
Andreas> alignment in bits or in bytes?

	Alignment now is consistently in bits (or is suppose to be).  I
fixed a bug a few months ago in calls.c:store_one_arg() where alignment
incorrectly was divided by BITS_PER_UNIT.  This may be another case of an
extraneous divide.

David


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