diff options
author | Richard Sandiford <richard.sandiford@linaro.org> | 2017-10-22 21:07:50 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2017-10-22 21:07:50 +0000 |
commit | e10326ff910ab337741d0781a536435d51c5f044 (patch) | |
tree | c06a568f9e31903ca74a6e355e410a71dfe83311 /gcc/reload1.c | |
parent | cae115d6d4552a29efb4ea94363d63bde985b4d8 (diff) | |
download | gcc-e10326ff910ab337741d0781a536435d51c5f044.zip gcc-e10326ff910ab337741d0781a536435d51c5f044.tar.gz gcc-e10326ff910ab337741d0781a536435d51c5f044.tar.bz2 |
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/reload1.c')
-rw-r--r-- | gcc/reload1.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c index 5e200b9..27f3716 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -2251,8 +2251,7 @@ alter_reg (int i, int from_reg, bool dont_share_p) /* 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); /* If we have any adjustment to make, or if the stack slot is the wrong mode, make a new stack slot. */ |