ICE on m68k-linux in 3_4-branch
Bernardo Innocenti
bernie@develer.com
Tue Jun 1 14:52:00 GMT 2004
Andreas Schwab wrote:
> Bernardo Innocenti <bernie@develer.com> writes:
>
>>This is the pattern in m68k.md:
>>
>>---cut---
>>(define_expand "movstrictqi"
>> [(set (strict_low_part (match_operand:QI 0 "nonimmediate_operand" ""))
>> (match_operand:QI 1 "general_src_operand" ""))]
>> ""
>> "")
>>
>>(define_insn ""
>> [(set (strict_low_part (match_operand:QI 0 "nonimmediate_operand" "+dm"))
>> (match_operand:QI 1 "general_src_operand" "dmSn"))]
>> "!TARGET_COLDFIRE"
>> "* return output_move_strictqi (operands);")
>>
>>(define_insn ""
>> [(set (strict_low_part (match_operand:QI 0 "nonimmediate_operand" "+d,m"))
>> (match_operand:QI 1 "general_src_operand" "dmn,d"))]
>> "TARGET_COLDFIRE"
>> "* return output_move_strictqi (operands);")
>>---cut---
>
>
> These patterns has been like this since a very long time. This is from
> old-gcc:
>
> revision 1.141
> date: 1997/05/18 11:48:25; author: kenner; state: Exp; lines: +30 -24
> (movstrict*): Changed into define_expands. Split insns into m68k and
> coldfire specific versions with appropriate constraints.
This RTL expression should match the pattern and select the
!TARGET_COLDFIRE insn:
(set (strict_low_part (reg:QI 0 %d0))
(const_int 1 [0x1])) -1 (nil)
The constant -1 should satisfy the "n" constraint, doesn't it?
I'm still wondering why the documentation for strict_low_part
in gccint.texi doesn't look like this RTX.
--
// Bernardo Innocenti - Develer S.r.l., R&D dept.
\X/ http://www.develer.com/
More information about the Gcc
mailing list