From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6483 invoked by alias); 8 Jan 2004 11:56:34 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 6476 invoked from network); 8 Jan 2004 11:56:33 -0000 Received: from unknown (HELO fencepost.gnu.org) (199.232.76.164) by sources.redhat.com with SMTP; 8 Jan 2004 11:56:33 -0000 Received: from monty-python.gnu.org ([199.232.76.173]) by fencepost.gnu.org with esmtp (Exim 4.24) id 1AeYlo-0004xJ-1O for gcc@gnu.org; Thu, 08 Jan 2004 06:56:12 -0500 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.24) id 1AeZi9-0003vz-9l for gcc@gnu.org; Thu, 08 Jan 2004 07:57:00 -0500 Received: from [151.38.19.110] (helo=develer.com) by monty-python.gnu.org with smtp (Exim 4.24) id 1AeZhf-0003vB-Uc for gcc@gnu.org; Thu, 08 Jan 2004 07:56:00 -0500 Received: (qmail 15658 invoked from network); 8 Jan 2004 11:54:24 -0000 Received: from beetle.trilan (HELO develer.com) (?YdNBoGFcs5Df5kRgeyQuSfKeReWIfvhA?@10.3.3.220) by ns.trilan with SMTP; 8 Jan 2004 11:54:23 -0000 Message-ID: <3FFD44F0.6070907@develer.com> Date: Thu, 08 Jan 2004 11:56:00 -0000 From: Bernardo Innocenti Organization: Develer S.r.l. User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6b) Gecko/20031210 MIME-Version: 1.0 To: Andreas Schwab CC: Richard Zidlicky , gcc@gnu.org Subject: Re: m68k bootstrapping broken References: <20040104215932.GC1714@linux-m68k.org> <3FF8E2B3.1090106@develer.com> <20040105122028.GA14266@linux-m68k.org> <3FFA0A3E.6000507@develer.com> <20040106085137.GA1610@linux-m68k.org> <3FFA9AB6.6070403@develer.com> <20040106205059.GA24045@linux-m68k.org> <3FFB4EE2.2080803@develer.com> <20040107182419.GA2906@linux-m68k.org> <3FFC71BA.2060105@develer.com> In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, hits=-2.6 required=5.0 tests=EMAIL_ATTRIBUTION,IN_REP_TO,QUOTED_EMAIL_TEXT,REFERENCES, REPLY_WITH_QUOTES,USER_AGENT_MOZILLA_UA,X_ACCEPT_LANG version=2.55 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp) X-SW-Source: 2004-01/txt/msg00466.txt.bz2 Andreas Schwab wrote: >>printf.c:2451: error: insn does not satisfy its constraints: >>(insn 1379 542 543 38 (nil) (set (reg:QI 8 %a0) >> (mem:QI (plus:SI (reg/f:SI 14 %a6) >> (const_int -209 [0xffffff2f])) [0 mode S1 A8])) 37 {*m68k.md:1060} (nil) >> (nil)) > > This tries to move a QImode from memory to an address register. m68k.md > has this pattern for movqi: > > (define_expand "movqi" > [(set (match_operand:QI 0 "nonimmediate_operand" "") > (match_operand:QI 1 "general_src_operand" ""))] > "" > "") > > (define_insn "" > [(set (match_operand:QI 0 "nonimmediate_operand" "=d,*a,m") > (match_operand:QI 1 "general_src_operand" "dmSi*a,di*a,dmSi"))] > "!TARGET_COLDFIRE" > "* return output_move_qimode (operands);") You meant to quote the TARGET_COLDFIRE version? The ICE happens with -m5200. > And indeed this combination of operands is not allowed by the constraints. > Shouldn't the define_expand reject this in the first place, or is there > some other mechanism to tell the reload pass not to generate such an insn? Sorry, I think I don't fully understand how the code generation pass works. In gccint, I read: Every RTL insn emitted by a `define_expand' must match some `define_insn' in the machine description. Otherwise, the compiler will crash when trying to generate code for the insn or trying to optimize it. So it means that once you've defined the "movqi" pattern, you must provide enough insns to satisfy all possible combinations of operands. Could we fix it by adding a new insn for TARGET_COLDFIRE with relaxed constraints, implemented using a longer/slower sequence of m68k instructions? -- // Bernardo Innocenti - Develer S.r.l., R&D dept. \X/ http://www.develer.com/