Backport changes 102337, 155527, 209759, 233603.
This commit is contained in:
parent
f52c9355e6
commit
37aef96904
|
@ -1,3 +1,20 @@
|
|||
Tue Oct 18 11:28:12 CEST 2016 Krystian Baclawski
|
||||
|
||||
2016-02-22 Jakub Jelinek <jakub@redhat.com>
|
||||
* config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
|
||||
SImode for last match_operand.
|
||||
|
||||
2014-04-24 Segher Boessenkool <segher@kernel.crashing.org>
|
||||
* config/m68k/m68k.md (extendplussidi): Don't allow memory for
|
||||
operand 1.
|
||||
|
||||
2009-12-30 Andreas Schwab <schwab@linux-m68k.org>
|
||||
* config/m68k/m68k.md (rotlsi_16): New insn.
|
||||
|
||||
2005-07-24 Andreas Schwab <schwab@suse.de>
|
||||
* config/m68k/m68k.md ("extendqidi2"): When source is an address
|
||||
register use a word move. Correct operand of ext.w in 68000 code.
|
||||
|
||||
Sun Oct 16 20:02:26 CEST 2016 Krystian Baclawski
|
||||
|
||||
2004-03-16 Richard Zidlicky <rz@linux-m68k.org>
|
||||
|
|
|
@ -1702,9 +1702,19 @@
|
|||
CC_STATUS_INIT;
|
||||
operands[2] = gen_rtx_REG (SImode, REGNO (operands[0]) + 1);
|
||||
if (TARGET_68020 || TARGET_5200)
|
||||
return \"move%.b %1,%2\;extb%.l %2\;smi %0\;extb%.l %0\";
|
||||
{
|
||||
if (ADDRESS_REG_P (operands[1]))
|
||||
return \"move%.w %1,%2\;extb%.l %2\;smi %0\;extb%.l %0\";
|
||||
else
|
||||
return \"move%.b %1,%2\;extb%.l %2\;smi %0\;extb%.l %0\";
|
||||
}
|
||||
else
|
||||
return \"move%.b %1,%2\;ext%.w %0\;ext%.l %2\;move%.l %2,%0\;smi %0\";
|
||||
{
|
||||
if (ADDRESS_REG_P (operands[1]))
|
||||
return \"move%.w %1,%2\;ext%.w %2\;ext%.l %2\;move%.l %2,%0\;smi %0\";
|
||||
else
|
||||
return \"move%.b %1,%2\;ext%.w %2\;ext%.l %2\;move%.l %2,%0\;smi %0\";
|
||||
}
|
||||
}")
|
||||
|
||||
(define_insn "extendhidi2"
|
||||
|
@ -1741,9 +1751,11 @@
|
|||
;; Maybe there is a way to make that the general case, by forcing the
|
||||
;; result of the SI tree to be in the lower register of the DI target
|
||||
|
||||
;; Don't allow memory for operand 1 as that would require an earlyclobber
|
||||
;; which results in worse code
|
||||
(define_insn "extendplussidi"
|
||||
[(set (match_operand:DI 0 "register_operand" "=d")
|
||||
(sign_extend:DI (plus:SI (match_operand:SI 1 "general_operand" "%rmn")
|
||||
(sign_extend:DI (plus:SI (match_operand:SI 1 "general_operand" "%rn")
|
||||
(match_operand:SI 2 "general_operand" "rmn"))))]
|
||||
""
|
||||
"*
|
||||
|
@ -4611,9 +4623,9 @@
|
|||
} ")
|
||||
|
||||
(define_expand "ashldi3"
|
||||
[(set (match_operand:DI 0 "general_operand" "")
|
||||
(ashift:DI (match_operand:DI 1 "general_operand" "")
|
||||
(match_operand 2 "const_int_operand" "")))]
|
||||
[(set (match_operand:DI 0 "register_operand" "")
|
||||
(ashift:DI (match_operand:DI 1 "register_operand" "")
|
||||
(match_operand:SI 2 "const_int_operand" "")))]
|
||||
"!TARGET_5200"
|
||||
"
|
||||
{
|
||||
|
@ -4822,9 +4834,9 @@
|
|||
} ")
|
||||
|
||||
(define_expand "ashrdi3"
|
||||
[(set (match_operand:DI 0 "general_operand" "")
|
||||
(ashiftrt:DI (match_operand:DI 1 "general_operand" "")
|
||||
(match_operand 2 "const_int_operand" "")))]
|
||||
[(set (match_operand:DI 0 "register_operand" "")
|
||||
(ashiftrt:DI (match_operand:DI 1 "register_operand" "")
|
||||
(match_operand:SI 2 "const_int_operand" "")))]
|
||||
"!TARGET_5200"
|
||||
"
|
||||
{
|
||||
|
@ -4990,9 +5002,9 @@
|
|||
} ")
|
||||
|
||||
(define_expand "lshrdi3"
|
||||
[(set (match_operand:DI 0 "general_operand" "")
|
||||
(lshiftrt:DI (match_operand:DI 1 "general_operand" "")
|
||||
(match_operand 2 "const_int_operand" "")))]
|
||||
[(set (match_operand:DI 0 "register_operand" "")
|
||||
(lshiftrt:DI (match_operand:DI 1 "register_operand" "")
|
||||
(match_operand:SI 2 "const_int_operand" "")))]
|
||||
"!TARGET_5200"
|
||||
"
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue