diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 1997-02-05 16:20:04 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 1997-02-05 16:20:04 +0000 |
commit | cabcf079ea400b5d7e8bed567cda10cdf64ff176 (patch) | |
tree | 8e63c9b8c39c861a32c73776c44dc68c2759e6af /gcc | |
parent | 4757e6a402f5badc3386168bc080c0b435417c91 (diff) | |
download | gcc-cabcf079ea400b5d7e8bed567cda10cdf64ff176.zip gcc-cabcf079ea400b5d7e8bed567cda10cdf64ff176.tar.gz gcc-cabcf079ea400b5d7e8bed567cda10cdf64ff176.tar.bz2 |
Don't always align reload stack slots to BIGGEST_ALIGNMENT
From-SVN: r13609
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/reload1.c | 6 |
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) { |