aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>1997-02-05 16:20:04 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>1997-02-05 16:20:04 +0000
commitcabcf079ea400b5d7e8bed567cda10cdf64ff176 (patch)
tree8e63c9b8c39c861a32c73776c44dc68c2759e6af
parent4757e6a402f5badc3386168bc080c0b435417c91 (diff)
downloadgcc-cabcf079ea400b5d7e8bed567cda10cdf64ff176.zip
gcc-cabcf079ea400b5d7e8bed567cda10cdf64ff176.tar.gz
gcc-cabcf079ea400b5d7e8bed567cda10cdf64ff176.tar.bz2
Don't always align reload stack slots to BIGGEST_ALIGNMENT
From-SVN: r13609
-rw-r--r--gcc/reload1.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c
index d380b53..780fc1f 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -2465,7 +2465,8 @@ alter_reg (i, from_reg)
if (from_reg == -1)
{
/* No known place to spill from => no slot to reuse. */
- x = assign_stack_local (GET_MODE (regno_reg_rtx[i]), total_size, -1);
+ x = assign_stack_local (GET_MODE (regno_reg_rtx[i]), total_size,
+ inherent_size == total_size ? 0 : -1);
if (BYTES_BIG_ENDIAN)
/* Cancel the big-endian correction done in assign_stack_local.
Get the address of the beginning of the slot.
@@ -2497,7 +2498,8 @@ alter_reg (i, from_reg)
total_size = spill_stack_slot_width[from_reg];
}
/* Make a slot with that size. */
- x = assign_stack_local (mode, total_size, -1);
+ x = assign_stack_local (mode, total_size,
+ inherent_size == total_size ? 0 : -1);
stack_slot = x;
if (BYTES_BIG_ENDIAN)
{