summaryrefslogtreecommitdiff
path: root/gcc/config/m68k
diff options
context:
space:
mode:
authorschwab <schwab@138bc75d-0d04-0410-961f-82ee72b054a4>2014-01-03 13:57:45 +0000
committerschwab <schwab@138bc75d-0d04-0410-961f-82ee72b054a4>2014-01-03 13:57:45 +0000
commit7e862b4e196dc67a46156d215ebfa5ea5c2af614 (patch)
treec542c3c6c56003a7d08bcf086a2d360f5ad21eb2 /gcc/config/m68k
parent1545a06d02d0079b240c843a726841936ea3b9a1 (diff)
downloadgcc-7e862b4e196dc67a46156d215ebfa5ea5c2af614.tar.gz
* config/m68k/m68k.c (handle_move_double): Handle pushes with
overlapping registers also for registers other than the stack pointer. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206317 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/m68k')
-rw-r--r--gcc/config/m68k/m68k.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c
index 25b8580e0d6..f20d0719cef 100644
--- a/gcc/config/m68k/m68k.c
+++ b/gcc/config/m68k/m68k.c
@@ -3328,12 +3328,12 @@ handle_move_double (rtx operands[2],
latehalf[1] = adjust_address (operands[1], SImode, 0);
}
- /* If insn is effectively movd N(sp),-(sp) then we will do the
- high word first. We should use the adjusted operand 1 (which is N+4(sp))
- for the low word as well, to compensate for the first decrement of sp. */
+ /* If insn is effectively movd N(REG),-(REG) then we will do the high
+ word first. We should use the adjusted operand 1 (which is N+4(REG))
+ for the low word as well, to compensate for the first decrement of
+ REG. */
if (optype0 == PUSHOP
- && REGNO (XEXP (XEXP (operands[0], 0), 0)) == STACK_POINTER_REGNUM
- && reg_overlap_mentioned_p (stack_pointer_rtx, operands[1]))
+ && reg_overlap_mentioned_p (XEXP (XEXP (operands[0], 0), 0), operands[1]))
operands[1] = middlehalf[1] = latehalf[1];
/* For (set (reg:DI N) (mem:DI ... (reg:SI N) ...)),