summaryrefslogtreecommitdiff
path: root/gcc/lra-spills.c
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@linaro.org>2017-10-22 21:07:50 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2017-10-22 21:07:50 +0000
commite10326ff910ab337741d0781a536435d51c5f044 (patch)
treec06a568f9e31903ca74a6e355e410a71dfe83311 /gcc/lra-spills.c
parentcae115d6d4552a29efb4ea94363d63bde985b4d8 (diff)
Make more use of subreg_size_lowpart_offset
This patch uses subreg_size_lowpart_offset in places that open-coded the calculation. The reload use (and the LRA one that was based on it) seemed to ignore the BYTES_BIG_ENDIAN != WORDS_BIG_ENDIAN case; it's not obvious whether that was deliberate or an oversight. 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org> Alan Hayward <alan.hayward@arm.com> David Sherwood <david.sherwood@arm.com> gcc/ * lra-spills.c (assign_mem_slot): Use subreg_size_lowpart_offset. * regcprop.c (maybe_mode_change): Likewise. * reload1.c (alter_reg): Likewise. Co-Authored-By: Alan Hayward <alan.hayward@arm.com> Co-Authored-By: David Sherwood <david.sherwood@arm.com> From-SVN: r253989
Diffstat (limited to 'gcc/lra-spills.c')
-rw-r--r--gcc/lra-spills.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/gcc/lra-spills.c b/gcc/lra-spills.c
index ab33dd42412..5997b1e48f5 100644
--- a/gcc/lra-spills.c
+++ b/gcc/lra-spills.c
@@ -153,9 +153,7 @@ assign_mem_slot (int i)
/* On a big endian machine, the "address" of the slot is the address
of the low part that fits its inherent mode. */
- if (BYTES_BIG_ENDIAN && inherent_size < total_size)
- adjust += (total_size - inherent_size);
-
+ adjust += subreg_size_lowpart_offset (inherent_size, total_size);
x = adjust_address_nv (x, GET_MODE (regno_reg_rtx[i]), adjust);
/* Set all of the memory attributes as appropriate for a spill. */