From: DJ Delorie Date: Thu, 12 Sep 2013 22:43:30 +0000 (-0400) Subject: rl78.c (rl78_expand_prologue): Use AX to copy between SP and FP. X-Git-Tag: releases/gcc-4.9.0~4098 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=17b2557c8348c79c6f1a4d6c3a46114011739eff;p=thirdparty%2Fgcc.git rl78.c (rl78_expand_prologue): Use AX to copy between SP and FP. * config/rl78/rl78.c (rl78_expand_prologue): Use AX to copy between SP and FP. (rl78_expand_epilogue): Likewise. From-SVN: r202542 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 91dba09a8662..5dc8ed03385d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2013-09-12 DJ Delorie + + * config/rl78/rl78.c (rl78_expand_prologue): Use AX to copy + between SP and FP. + (rl78_expand_epilogue): Likewise. + 2013-09-12 Vladimir Makarov PR middle-end/58335 diff --git a/gcc/config/rl78/rl78.c b/gcc/config/rl78/rl78.c index cd9010ab1905..3f13955d896e 100644 --- a/gcc/config/rl78/rl78.c +++ b/gcc/config/rl78/rl78.c @@ -1036,8 +1036,12 @@ rl78_expand_prologue (void) emit_insn (gen_sel_rb (GEN_INT (0))); if (frame_pointer_needed) - F (emit_move_insn (gen_rtx_REG (HImode, FRAME_POINTER_REGNUM), - gen_rtx_REG (HImode, STACK_POINTER_REGNUM))); + { + F (emit_move_insn (gen_rtx_REG (HImode, AX_REG), + gen_rtx_REG (HImode, STACK_POINTER_REGNUM))); + F (emit_move_insn (gen_rtx_REG (HImode, FRAME_POINTER_REGNUM), + gen_rtx_REG (HImode, AX_REG))); + } fs = cfun->machine->framesize_locals + cfun->machine->framesize_outgoing; while (fs > 0) @@ -1061,8 +1065,10 @@ rl78_expand_epilogue (void) if (frame_pointer_needed) { - emit_move_insn (gen_rtx_REG (HImode, STACK_POINTER_REGNUM), + emit_move_insn (gen_rtx_REG (HImode, AX_REG), gen_rtx_REG (HImode, FRAME_POINTER_REGNUM)); + emit_move_insn (gen_rtx_REG (HImode, STACK_POINTER_REGNUM), + gen_rtx_REG (HImode, AX_REG)); } else {