From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17780 invoked by alias); 14 Jul 2004 19:48:45 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 17769 invoked from network); 14 Jul 2004 19:48:44 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sourceware.org with SMTP; 14 Jul 2004 19:48:44 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.10/8.12.10) with ESMTP id i6EJmge1003789; Wed, 14 Jul 2004 15:48:42 -0400 Received: from localhost (mail@vpnuser2.surrey.redhat.com [172.16.9.2]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id i6EJmf008452; Wed, 14 Jul 2004 15:48:41 -0400 Received: from rsandifo by localhost with local (Exim 3.35 #1) id 1Bkpk8-0000Ky-00; Wed, 14 Jul 2004 20:48:40 +0100 To: Alexandre Oliva Cc: Kazu Hirata , gcc-patches@gcc.gnu.org Subject: Re: add h8sx support to h8300 References: <20040621.102356.74724063.kazu@cs.umass.edu> <87fz83f456.fsf@redhat.com> <87zn6aevpa.fsf@redhat.com> <873c42e8rb.fsf@redhat.com> <87r7rh8hx8.fsf@redhat.com> <874qobvz2a.fsf@redhat.com> From: Richard Sandiford Date: Thu, 15 Jul 2004 05:22:00 -0000 In-Reply-To: (Alexandre Oliva's message of "14 Jul 2004 16:30:11 -0300") Message-ID: <874qoawesn.fsf@redhat.com> User-Agent: Gnus/5.1006 (Gnus v5.10.6) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2004-07/txt/msg01497.txt.bz2 Alexandre Oliva writes: > On Jul 14, 2004, Richard Sandiford wrote: >> Alexandre Oliva writes: >>>> ! if (!regs_ever_live[HFP_REG]) >>>> ! return NO_REGS; >>> >>> I had both HFP_REG and FP_REG at some point. I thought this would >>> minimize the risk of running into the failure case. Don't you think >>> so? > >> I wouldn't have thought checking for FP_REG was necessary. It really is >> the liveness of er6 that we're concerned about. > > Then I totally misunderstand what's going on. I thought you were > testing whether the frame pointer was used, not whether there was some > random pseudo assigned to er6 by local or global. Which is it? The idea is that, if nothing is using er6, there's no reason why it can't be allocated for a movmd. The register allocators might normally shy away from that because er6 is a call-saved register. "Hey, I've got this call-clobbered register sitting free. Why not use that instead of er6?". Even '!' wasn't enough to convince them otherwise. [ And that's not surprising really. It's unusual to strongly prefer a call-saved register over a call-clobbered when a pattern offers both alternatives. ] Of course, we don't have the same problem with er5 and er7 since we can safely require 'f' and 'c' in all alternatives. er6 is the odd one out because we have to offer a 'D' alternative as well. Richard