diff options
author | schwab <schwab@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-01-03 13:57:45 +0000 |
---|---|---|
committer | schwab <schwab@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-01-03 13:57:45 +0000 |
commit | 7e862b4e196dc67a46156d215ebfa5ea5c2af614 (patch) | |
tree | c542c3c6c56003a7d08bcf086a2d360f5ad21eb2 /gcc/config/m68k | |
parent | 1545a06d02d0079b240c843a726841936ea3b9a1 (diff) | |
download | gcc-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.c | 10 |
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) ...)), |