From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31743 invoked by alias); 13 Dec 2001 10:36:01 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 31712 invoked by uid 71); 13 Dec 2001 10:36:00 -0000 Resent-Date: 13 Dec 2001 10:36:00 -0000 Resent-Message-ID: <20011213103600.31711.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-To: nobody@gcc.gnu.org Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org, lonardo@nergal.it Resent-Reply-To: gcc-gnats@gcc.gnu.org, maltieri@nergal.it Received:(qmail 31003 invoked by uid 61); 13 Dec 2001 10:29:37 -0000 Message-Id:<20011213102937.31002.qmail@sources.redhat.com> Date: Thu, 13 Dec 2001 02:36:00 -0000 From: maltieri@nergal.it Reply-To: maltieri@nergal.it To: gcc-gnats@gcc.gnu.org Cc: lonardo@nergal.it X-Send-Pr-Version:gnatsweb-2.9.2 (1.1.1.1.2.21) X-GNATS-Notify:lonardo@nergal.it Subject: middle-end/5100: Wrong register class selected by find_valid_class X-SW-Source: 2001-12/txt/msg00784.txt.bz2 List-Id: >Number: 5100 >Category: middle-end >Synopsis: Wrong register class selected by find_valid_class >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Thu Dec 13 02:36:00 PST 2001 >Closed-Date: >Last-Modified: >Originator: Marco Altieri >Release: 3.0 >Organization: >Environment: Linux 7.0. >Description: We are devoloping a porting of gcc to a new DSP architecture that has pointers whith a size of 2 registers. A pointer must always be allocated on a even/odd pair of registers. HARD_REGNO_MODE_OK macro returns 0 for all the odd registers when the mode is Pmode. There are classes for even registers (EVEN_REGS), odd registers (ODD_REGS) and all the general registers (GENERAL_REGS). The algorithm used by find_valid_class rejects GENERAL_REGS class for a Pmode subreg and returns EVEN_REGS. This is incorrect because a double-sized mode can not be allocated in EVEN_REGS class. >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: