mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-28 12:55:26 +08:00
(ashrdi_const, ashrdi3): Allow 31 as shift count.
From-SVN: r13528
This commit is contained in:
parent
72eaa7a090
commit
b85079b76e
@ -4443,7 +4443,8 @@
|
||||
"!TARGET_5200
|
||||
&& ((INTVAL (operands[2]) == 1 || INTVAL (operands[2]) == 2
|
||||
|| INTVAL (operands[2]) == 3 || INTVAL (operands[2]) == 8
|
||||
|| INTVAL (operands[2]) == 16 || INTVAL (operands[2]) == 63))"
|
||||
|| INTVAL (operands[2]) == 16 || INTVAL (operands[2]) == 31
|
||||
|| INTVAL (operands[2]) == 63))"
|
||||
"*
|
||||
{
|
||||
operands[1] = gen_rtx (REG, SImode, REGNO (operands[0]) + 1);
|
||||
@ -4456,6 +4457,8 @@
|
||||
return \"move%.b %0,%1\;asr%.l %#8,%0\;ror%.l %#8,%1\";
|
||||
else if (INTVAL (operands[2]) == 16)
|
||||
return \"move%.w %0,%1\;clr%.w %0\;swap %1\;ext%.l %0\";
|
||||
else if (INTVAL (operands[2]) == 31)
|
||||
return \"add%.l %1,%1\;addx%.l %0,%0\;move%.l %0,%1\;subx%.l %0,%0\";
|
||||
else if (INTVAL (operands[2]) == 2)
|
||||
return \"asr%.l %#1,%0\;roxr%.l %#1,%1\;asr%.l %#1,%0\;roxr%.l %#1,%1\";
|
||||
else/* if (INTVAL (operands[2]) == 3)*/
|
||||
@ -4472,8 +4475,8 @@
|
||||
if (GET_CODE (operands[2]) != CONST_INT
|
||||
|| (INTVAL (operands[2]) != 1 && INTVAL (operands[2]) != 2
|
||||
&& INTVAL (operands[2]) != 3 && INTVAL (operands[2]) != 8
|
||||
&& INTVAL (operands[2]) != 16 && INTVAL (operands[2]) != 32
|
||||
&& INTVAL (operands[2]) != 63))
|
||||
&& INTVAL (operands[2]) != 16 && INTVAL (operands[2]) != 31
|
||||
&& INTVAL (operands[2]) != 32 && INTVAL (operands[2]) != 63))
|
||||
FAIL;
|
||||
} ")
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user