From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24591 invoked by alias); 21 Apr 2002 00:00:12 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 24538 invoked from network); 21 Apr 2002 00:00:09 -0000 Received: from unknown (HELO localhost.redhat.com) (24.112.240.27) by sources.redhat.com with SMTP; 21 Apr 2002 00:00:09 -0000 Received: from cygnus.com (localhost [127.0.0.1]) by localhost.redhat.com (Postfix) with ESMTP id 63C3A3D1A; Sat, 20 Apr 2002 20:00:07 -0400 (EDT) Message-ID: <3CC20106.1080508@cygnus.com> Date: Sat, 20 Apr 2002 17:00:00 -0000 From: Andrew Cagney User-Agent: Mozilla/5.0 (X11; U; NetBSD macppc; en-US; rv:0.9.9) Gecko/20020328 X-Accept-Language: en-us, en MIME-Version: 1.0 To: thorpej@wasabisystems.com Cc: gdb-patches@sources.redhat.com Subject: Re: [PATCH/RFA] Fix busted logic in find_saved_register() References: <20020420144817.W1627@dr-evil.shagadelic.org> <3CC1F4D3.9020104@cygnus.com> <20020420162639.X1627@dr-evil.shagadelic.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2002-04/txt/msg00692.txt.bz2 > Ok, I will commit the fix. > > > You mention that the alpha is calling that function. Is that directly > > or indirectly? I'm going to eliminate the MIPS direct call. > > Directly. The alpha_get_saved_register() is nearly identical to the > mips_get_saved_register(). If you've implemented INIT_SAVED_REGS() do you need a custom get_saved_register()? > How are you changing the MIPS target? Things will affect the MIPS at two levels. Ref: Andrew Cagney - [rfc] Frame based register cache / frame->unwind http://sources.redhat.com/ml/gdb/2002-04/msg00245.html I'm looking to change the way frames are unwound. I'd ignore that patch as posted - I've managed to greatly simplify things. Main thing to note that the new code doesn't use find_saved_register(). Instead it uses a recursive frame->register_unwind() method. If/when this change goes through, any code using the existing find_saved_register() would be handed a local copy. -- At a more theoretical [sp] level, I'm looking to rewrite the entire function. Much of the MIPS complexity comes about because its REGNUM's are overloaded. For instance, the hardware fp0 register might be 64 bits but when a program (via debug info) refers to it, it is only 32 bits. I think the way to handle this is to map debug info REGNUMs onto the pseudo address space and then use register_{read,write} to map them onto the corresponding hardware register. This one is more theoretical as the SH5 is the first port to try to get this working and (apparently) it flushed out a few teething problems. enjoy, Andrew