aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/m32r
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>2020-04-03 12:46:13 -0600
committerJeff Law <law@redhat.com>2020-04-03 12:46:13 -0600
commitb949f8e2acb49273b2f08ecaa3bc7128baaad850 (patch)
tree26ceb28f8543931cb81ad865344289eb2cfe838e /gcc/config/m32r
parenta13d6ec867e750169af95649235a6681f410464a (diff)
downloadgcc-b949f8e2acb49273b2f08ecaa3bc7128baaad850.zip
gcc-b949f8e2acb49273b2f08ecaa3bc7128baaad850.tar.gz
gcc-b949f8e2acb49273b2f08ecaa3bc7128baaad850.tar.bz2
Fix va-arg-22.c at -O1 on m32r.
PR rtl-optimization/92264 * config/m32r/m32r.c (m32r_output_block_move): Properly account for post-increment addressing of source operands as well as residuals when computing any adjustments to the input pointer.
Diffstat (limited to 'gcc/config/m32r')
-rw-r--r--gcc/config/m32r/m32r.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/config/m32r/m32r.c b/gcc/config/m32r/m32r.c
index 1c01560..27fb495 100644
--- a/gcc/config/m32r/m32r.c
+++ b/gcc/config/m32r/m32r.c
@@ -2676,7 +2676,7 @@ m32r_output_block_move (rtx insn ATTRIBUTE_UNUSED, rtx operands[])
destination pointer. */
int dst_inc_amount = dst_offset + bytes - 4;
/* The same for the source pointer. */
- int src_inc_amount = bytes;
+ int src_inc_amount = bytes - (got_extra ? 4 : 0);
int last_shift;
rtx my_operands[3];