Fix for -maix64 and medium sized struct passing.
From-SVN: r48102
This commit is contained in:
parent
301d03af8a
commit
ea9982a840
@ -1,3 +1,8 @@
|
||||
2001-12-17 Tom Rix <trix@redhat.com>
|
||||
|
||||
* config/rs6000/rs6000.c (expand_block_move): Fix limits on max size
|
||||
of bytes.
|
||||
|
||||
2001-12-17 Richard Sandiford <rsandifo@redhat.com>
|
||||
|
||||
* target.h (asm_out.byte_op, asm_out.aligned_op, asm_out.unaligned_op,
|
||||
|
@ -4075,25 +4075,9 @@ expand_block_move (operands)
|
||||
if (bytes <= 0)
|
||||
return 1;
|
||||
|
||||
/* Don't support real large moves. If string instructions are not used,
|
||||
then don't generate more than 8 loads. */
|
||||
if (TARGET_STRING)
|
||||
{
|
||||
if (bytes > 8*4)
|
||||
return 0;
|
||||
}
|
||||
else if (! STRICT_ALIGNMENT)
|
||||
{
|
||||
if (TARGET_POWERPC64 && align >= 4)
|
||||
{
|
||||
if (bytes > 8*8)
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
if (bytes > 8*4)
|
||||
return 0;
|
||||
}
|
||||
else if (bytes > 8*align)
|
||||
/* store_one_arg depends on expand_block_move to handle at least the size of
|
||||
reg_parm_stack_space. */
|
||||
if (bytes > (TARGET_POWERPC64 ? 64 : 32))
|
||||
return 0;
|
||||
|
||||
/* Move the address into scratch registers. */
|
||||
|
Loading…
Reference in New Issue
Block a user