From: Jeff Law Date: Fri, 3 Apr 2020 18:46:13 +0000 (-0600) Subject: Fix va-arg-22.c at -O1 on m32r. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b949f8e2acb49273b2f08ecaa3bc7128baaad850;p=gcc.git 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. --- 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];