This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: ICE on m68k-linux in 3_4-branch


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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]