From b949f8e2acb49273b2f08ecaa3bc7128baaad850 Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Fri, 3 Apr 2020 12:46:13 -0600 Subject: [PATCH] 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. --- gcc/ChangeLog | 7 +++++++ gcc/config/m32r/m32r.c | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7083bbb9cce..e9dfa71ec0e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2020-04-03 Jeff Law + + 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. + 2020-04-03 Jakub Jelinek PR target/94460 diff --git a/gcc/config/m32r/m32r.c b/gcc/config/m32r/m32r.c index 1c015609524..27fb495ed17 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]; -- 2.30.2