re PR target/39531 (m68k gcc does not convert andil to bclr when compiled on a 64bit host)
PR target/39531 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies before calling exact_log2. (output_iorsi3): Likewise. (output_xorsi3): Likewise. From-SVN: r147664
This commit is contained in:
parent
e35bbb23ad
commit
c4406f7429
|
@ -1,3 +1,11 @@
|
|||
2009-05-18 Andreas Schwab <schwab@linux-m68k.org>
|
||||
|
||||
PR target/39531
|
||||
* config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
|
||||
before calling exact_log2.
|
||||
(output_iorsi3): Likewise.
|
||||
(output_xorsi3): Likewise.
|
||||
|
||||
2009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
|
||||
|
||||
* config/sh/sh.c (expand_cbranchdi4): Use a scratch register
|
||||
|
|
|
@ -4829,7 +4829,7 @@ output_andsi3 (rtx *operands)
|
|||
return "and%.w %2,%0";
|
||||
}
|
||||
if (GET_CODE (operands[2]) == CONST_INT
|
||||
&& (logval = exact_log2 (~ INTVAL (operands[2]))) >= 0
|
||||
&& (logval = exact_log2 (~ INTVAL (operands[2]) & 0xffffffff)) >= 0
|
||||
&& (DATA_REG_P (operands[0])
|
||||
|| offsettable_memref_p (operands[0])))
|
||||
{
|
||||
|
@ -4866,7 +4866,7 @@ output_iorsi3 (rtx *operands)
|
|||
return "or%.w %2,%0";
|
||||
}
|
||||
if (GET_CODE (operands[2]) == CONST_INT
|
||||
&& (logval = exact_log2 (INTVAL (operands[2]))) >= 0
|
||||
&& (logval = exact_log2 (INTVAL (operands[2]) & 0xffffffff)) >= 0
|
||||
&& (DATA_REG_P (operands[0])
|
||||
|| offsettable_memref_p (operands[0])))
|
||||
{
|
||||
|
@ -4901,7 +4901,7 @@ output_xorsi3 (rtx *operands)
|
|||
return "eor%.w %2,%0";
|
||||
}
|
||||
if (GET_CODE (operands[2]) == CONST_INT
|
||||
&& (logval = exact_log2 (INTVAL (operands[2]))) >= 0
|
||||
&& (logval = exact_log2 (INTVAL (operands[2]) & 0xffffffff)) >= 0
|
||||
&& (DATA_REG_P (operands[0])
|
||||
|| offsettable_memref_p (operands[0])))
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue