From: J"orn Rennecke Date: Fri, 31 Oct 1997 00:40:46 +0000 (+0000) Subject: expr.c (expand_increment): When enqueing a postincrement for a MEM... X-Git-Tag: releases/egcs-1.0.0~199 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=59fe8c2c207c0e4309ee5c9734ed16bd096eeedd;p=thirdparty%2Fgcc.git expr.c (expand_increment): When enqueing a postincrement for a MEM... * expr.c (expand_increment): When enqueing a postincrement for a MEM, use copy_to_reg if address is not a general_operand. From-SVN: r16247 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 78f47c3bbfdb..a417d4d8c310 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Fri Oct 31 00:34:55 1996 J"orn Rennecke + + * expr.c (expand_increment): When enqueing a postincrement for a MEM, + use copy_to_reg if address is not a general_operand. + Fri Oct 31 00:16:55 1997 J"orn Rennecke * profile.c (output_func_start_profiler): Clear flag_inline_functions diff --git a/gcc/expr.c b/gcc/expr.c index 5cd1b435780e..19a5e1b17358 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -9847,7 +9847,9 @@ expand_increment (exp, post, ignore) } if (icode != (int) CODE_FOR_nothing && GET_CODE (op0) == MEM) { - rtx addr = force_reg (Pmode, XEXP (op0, 0)); + rtx addr = (general_operand (XEXP (op0, 0), mode) + ? force_reg (Pmode, XEXP (op0, 0)) + : copy_to_reg (XEXP (op0, 0))); rtx temp, result; op0 = change_address (op0, VOIDmode, addr);