From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28607 invoked by alias); 19 Jun 2009 00:06:10 -0000 Received: (qmail 28598 invoked by uid 22791); 19 Jun 2009 00:06:09 -0000 X-SWARE-Spam-Status: No, hits=-2.6 required=5.0 tests=AWL,BAYES_00,SPF_PASS,WEIRD_PORT X-Spam-Check-By: sourceware.org Received: from mail-px0-f194.google.com (HELO mail-px0-f194.google.com) (209.85.216.194) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 19 Jun 2009 00:06:04 +0000 Received: by pxi32 with SMTP id 32so1023624pxi.0 for ; Thu, 18 Jun 2009 17:06:02 -0700 (PDT) Received: by 10.143.40.5 with SMTP id s5mr1205636wfj.19.1245369962110; Thu, 18 Jun 2009 17:06:02 -0700 (PDT) Received: from Paullaptop (203-206-7-21.dyn.iinet.net.au [203.206.7.21]) by mx.google.com with ESMTPS id 32sm874792wfa.33.2009.06.18.17.05.48 (version=SSLv3 cipher=RC4-MD5); Thu, 18 Jun 2009 17:05:50 -0700 (PDT) Message-ID: From: "Paul Edwards" To: "Ulrich Weigand" Cc: "Daniel Jacobowitz" , References: <200906151745.n5FHjSul029896@d12av02.megacenter.de.ibm.com> In-Reply-To: <200906151745.n5FHjSul029896@d12av02.megacenter.de.ibm.com> Subject: Re: i370 port Date: Fri, 19 Jun 2009 00:06:00 -0000 MIME-Version: 1.0 Content-Type: text/plain; format=flowed; charset="Windows-1252"; reply-type=original Content-Transfer-Encoding: 7bit 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: 2009-06/txt/msg00456.txt.bz2 Hi guys. The last class of warning I have from the machine definition is this: ./config/i370/i370.md:784: warning: destination operand 0 allows non-lvalue which is because I have used r_or_s_operand like this: ; ; movdi instruction pattern(s). ; (define_insn "" [(set (match_operand:DI 0 "r_or_s_operand" "=dm,dS") (match_operand:DI 1 "r_or_s_operand" "dm*fF,i"))] "TARGET_CHAR_INSTRUCTIONS" "* { check_label_emit (); if (REG_P (operands[0])) and I believe what is happening is that r_or_s_operand allows a constant. But sometimes r_or_s_operand is being used as a source, in which case, the constant is fine. But when it is used as a destination, it is not fine. What is the *simplest* way of changing the setup so that the code generation remains the same, but the warning is eliminated? Note that this is 3.2.3 and I'm not wanting to restructure the whole thing to be the same as s390.md. I am thinking I can define something like r_or_s_lval_operand which would be the same as r_or_s_operand except not allow constants. But wondering if there's something simpler and neater. Thanks. Paul.