(i960_arg_size_and_align): Correct alignment of XFmode values in

library calls.

From-SVN: r10176
This commit is contained in:
Richard Kenner 1995-07-28 08:43:27 -04:00
parent 0c253776b2
commit 280fc31e5d

View File

@ -2053,7 +2053,14 @@ i960_arg_size_and_align (mode, type, size_out, align_out)
size = (GET_MODE_SIZE (mode) + UNITS_PER_WORD - 1) / UNITS_PER_WORD;
if (type == 0)
align = size;
{
/* ??? This is a hack to properly correct the alignment of XFmode
values without affecting anything else. */
if (size == 3)
align = 4;
else
align = size;
}
else if (TYPE_ALIGN (type) >= BITS_PER_WORD)
align = TYPE_ALIGN (type) / BITS_PER_WORD;
else
@ -2068,7 +2075,9 @@ i960_arg_size_and_align (mode, type, size_out, align_out)
subsequent arguments are placed on the stack.
Additionally, parameters with an alignment requirement stronger than
a word must be be aligned appropriately. */
a word must be aligned appropriately. Note that this means that a
64 bit object with a 32 bit alignment is not 64 bit aligned and may be
passed in an odd/even register pair. */
/* Update CUM to advance past an argument described by MODE and TYPE. */