From patchwork Fri Jun 18 00:37:35 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: John David Anglin X-Patchwork-Id: 56098 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 1B3DF1007D2 for ; Fri, 18 Jun 2010 10:37:44 +1000 (EST) Received: (qmail 30996 invoked by alias); 18 Jun 2010 00:37:42 -0000 Received: (qmail 30988 invoked by uid 22791); 18 Jun 2010 00:37:42 -0000 X-SWARE-Spam-Status: No, hits=-1.1 required=5.0 tests=AWL, BAYES_40, T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from hiauly1.hia.nrc.ca (HELO hiauly1.hia.nrc.ca) (132.246.100.193) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 18 Jun 2010 00:37:38 +0000 Received: by hiauly1.hia.nrc.ca (Postfix, from userid 1000) id E50864FA3; Thu, 17 Jun 2010 20:37:35 -0400 (EDT) Subject: [committed] Fix interchanged base/index on PA hpux To: gcc-patches@gcc.gnu.org Date: Thu, 17 Jun 2010 20:37:35 -0400 (EDT) From: "John David Anglin" MIME-Version: 1.0 Message-Id: <20100618003735.E50864FA3@hiauly1.hia.nrc.ca> 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 enclosed patch fixes a problem with base and index registers being interchanged. This affects hppa hpux targets. Tested on hppa2.0w-hp-hpux11.11 and hppa64-hp-hpux11.11 with no observed regressions. Dave Index: config/pa/pa.c =================================================================== --- config/pa/pa.c (revision 160864) +++ config/pa/pa.c (working copy) @@ -1699,10 +1699,6 @@ && !REG_POINTER (operand0) && !HARD_REGISTER_P (operand0)) copy_reg_pointer (operand0, operand1); - else if (REG_POINTER (operand0) - && !REG_POINTER (operand1) - && !HARD_REGISTER_P (operand1)) - copy_reg_pointer (operand1, operand0); } /* When MEMs are broken out, the REG_POINTER flag doesn't