From patchwork Sun May 29 20:01:47 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Botcazou X-Patchwork-Id: 97850 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id 9C394B6F82 for ; Mon, 30 May 2011 06:02:19 +1000 (EST) Received: (qmail 28640 invoked by alias); 29 May 2011 20:02:18 -0000 Received: (qmail 28629 invoked by uid 22791); 29 May 2011 20:02:17 -0000 X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from mel.act-europe.fr (HELO mel.act-europe.fr) (194.98.77.210) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sun, 29 May 2011 20:02:00 +0000 Received: from localhost (localhost [127.0.0.1]) by filtered-smtp.eu.adacore.com (Postfix) with ESMTP id 8E3B8CB028D; Sun, 29 May 2011 22:01:59 +0200 (CEST) Received: from mel.act-europe.fr ([127.0.0.1]) by localhost (smtp.eu.adacore.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id iWU6hCYGD9Wl; Sun, 29 May 2011 22:01:56 +0200 (CEST) Received: from [192.168.1.2] (bon31-9-83-155-120-49.fbx.proxad.net [83.155.120.49]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mel.act-europe.fr (Postfix) with ESMTP id 4DBC6CB01F2; Sun, 29 May 2011 22:01:56 +0200 (CEST) From: Eric Botcazou To: gcc-patches@gcc.gnu.org Subject: Adjust comment about kludge in simplify_subreg_regno Date: Sun, 29 May 2011 22:01:47 +0200 User-Agent: KMail/1.9.9 Cc: wilson@tuliptree.org, sje@cup.hp.com MIME-Version: 1.0 Message-Id: <201105292201.47475.ebotcazou@adacore.com> Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org The comment reads: ??? We allow invalid registers if (reg:XMODE XREGNO) is also invalid. This is a kludge to work around how float/complex arguments are passed on 32-bit SPARC and should be fixed. */ if (!HARD_REGNO_MODE_OK (yregno, ymode) && HARD_REGNO_MODE_OK (xregno, xmode)) return -1; It turns out that it is outdated, removing the kludge as follows: /* See whether (reg:YMODE YREGNO) is valid. */ if (!HARD_REGNO_MODE_OK (yregno, ymode)) return -1; works fine on the SPARC (both 32-bit and 64-bit). Now there is a problem on IA-64, see PR target/49226. So I'm changing the comment to reflect that. 2011-05-29 Eric Botcazou PR target/48830 * rtlanal.c (simplify_subreg_regno): Adjust comment. Index: rtlanal.c =================================================================== --- rtlanal.c (revision 174377) +++ rtlanal.c (working copy) @@ -3452,8 +3452,8 @@ simplify_subreg_regno (unsigned int xreg /* See whether (reg:YMODE YREGNO) is valid. ??? We allow invalid registers if (reg:XMODE XREGNO) is also invalid. - This is a kludge to work around how float/complex arguments are passed - on 32-bit SPARC and should be fixed. */ + This is a kludge to work around how complex FP arguments are passed + on IA-64 and should be fixed. See PR target/49226. */ if (!HARD_REGNO_MODE_OK (yregno, ymode) && HARD_REGNO_MODE_OK (xregno, xmode)) return -1;