From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24096 invoked by alias); 12 Dec 2007 12:13:33 -0000 Received: (qmail 24084 invoked by uid 22791); 12 Dec 2007 12:13:32 -0000 X-Spam-Check-By: sourceware.org Received: from mtagate7.de.ibm.com (HELO mtagate7.de.ibm.com) (195.212.29.156) by sourceware.org (qpsmtpd/0.31) with ESMTP; Wed, 12 Dec 2007 12:13:21 +0000 Received: from d12nrmr1607.megacenter.de.ibm.com (d12nrmr1607.megacenter.de.ibm.com [9.149.167.49]) by mtagate7.de.ibm.com (8.13.8/8.13.8) with ESMTP id lBCCDILe252142 for ; Wed, 12 Dec 2007 12:13:18 GMT Received: from d12av04.megacenter.de.ibm.com (d12av04.megacenter.de.ibm.com [9.149.165.229]) by d12nrmr1607.megacenter.de.ibm.com (8.13.8/8.13.8/NCO v8.7) with ESMTP id lBCCDIIc2703510 for ; Wed, 12 Dec 2007 13:13:18 +0100 Received: from d12av04.megacenter.de.ibm.com (loopback [127.0.0.1]) by d12av04.megacenter.de.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id lBCCDH4u020761 for ; Wed, 12 Dec 2007 13:13:17 +0100 Received: from d12mc102.megacenter.de.ibm.com (d12mc102.megacenter.de.ibm.com [9.149.167.114]) by d12av04.megacenter.de.ibm.com (8.12.11.20060308/8.12.11) with ESMTP id lBCCDHNr020755; Wed, 12 Dec 2007 13:13:17 +0100 In-Reply-To: <002601c83c7c$b3763960$33160e98@ece.ncsu.edu> Subject: RE: Help with another constraint To: "Balaji V. Iyer" Cc: gcc@gcc.gnu.org, openrisc@opencores.org, "'Rask Ingemann Lambertsen'" X-Mailer: Lotus Notes Release 7.0 HF277 June 21, 2006 Message-ID: From: Revital1 Eres Date: Wed, 12 Dec 2007 12:53:00 -0000 MIME-Version: 1.0 Content-type: text/plain; charset=US-ASCII X-IsSubscribed: yes Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org X-SW-Source: 2007-12/txt/msg00368.txt.bz2 Hello, I think you should add the pair of constraints m and I respectively to the description of the instruction in your md file (and a relevant case 8 to handle such instruction), i.e.: (define_insn "movqi" - [(set (match_operand:QI 0 "nonimmediate_operand" "=p,q,m,m,p,q,p,q") - (match_operand:QI 1 "general_operand" "m,m,p,q,p,q,I,I"))] + [(set (match_operand:QI 0 "nonimmediate_operand" "=p,q,m,m,p,q,p,q,m") + (match_operand:QI 1 "general_operand" "m,m,p,q,p,q,I,I,I"))] "" "* switch(which_alternative) @@ -17,6 +17,8 @@ case 6: case 7: return \"l.addi \\t%0,r0,%1\\t # move immediate\";, + case 8: + return ...; default: return \"invalid alternative\"; } It seems that the pair m and I is missing (which indicate the memory = constant instruction). You could look for which_alternative variable in GCC internals for more details on this. Revital