function.c (assign_stack_temp_for_type): Abort if mode == Blkmode and align is less than BIGGEST_ALIGNMENT / BITS_PER_UNIT.

* function.c (assign_stack_temp_for_type): Abort
        if mode == Blkmode and align is less than
        BIGGEST_ALIGNMENT / BITS_PER_UNIT.
        (assign_stack_temp_for_type): Round the size parameter
        passed to assign_stack_local instead of size itself.
Bootstrapped on the PA and x86.

From-SVN: r25593
This commit is contained in:
John Wehle 1999-03-05 01:19:25 +00:00 committed by Jeff Law
parent 01587fa2fe
commit 6f67a30d15
2 changed files with 14 additions and 6 deletions

View file

@ -1,3 +1,11 @@
Fri Mar 5 02:14:54 1999 John Wehle (john@feith.com)
* function.c (assign_stack_temp_for_type): Abort
if mode == Blkmode and align is less than
BIGGEST_ALIGNMENT / BITS_PER_UNIT.
(assign_stack_temp_for_type): Round the size parameter
passed to assign_stack_local instead of size itself.
Thu Mar 4 15:00:35 1999 Richard Henderson <rth@cygnus.com>
* flow.c (delete_unreachable_blocks): Mark blocks as they

View file

@ -998,12 +998,12 @@ assign_stack_temp_for_type (mode, size, keep, type)
So for requests which depended on the rounding of SIZE, we go ahead
and round it now. We also make sure ALIGNMENT is at least
BIGGEST_ALIGNMENT. */
if (mode == BLKmode)
{
align = MAX (align, BIGGEST_ALIGNMENT / BITS_PER_UNIT);
size = CEIL_ROUND (size, align);
}
p->slot = assign_stack_local (mode, size, align);
if (mode == BLKmode && align < (BIGGEST_ALIGNMENT / BITS_PER_UNIT))
abort();
p->slot = assign_stack_local (mode,
mode == BLKmode
? CEIL_ROUND (size, align) : size,
align);
p->align = align;
p->alias_set = alias_set;