From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20799 invoked by alias); 9 Jun 2004 21:03:44 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 20792 invoked from network); 9 Jun 2004 21:03:44 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sourceware.org with SMTP; 9 Jun 2004 21:03: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 i59L3ii5019986 for ; Wed, 9 Jun 2004 17:03:44 -0400 Received: from zenia.home.redhat.com (porkchop.devel.redhat.com [172.16.58.2]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id i59L3g019385; Wed, 9 Jun 2004 17:03:42 -0400 To: Andrew Cagney Cc: gdb@sources.redhat.com Subject: Re: Supplying regsets containing pseudoregisters References: <40C7302D.9020506@gnu.org> From: Jim Blandy Date: Wed, 09 Jun 2004 21:03:00 -0000 In-Reply-To: Message-ID: User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2004-06/txt/msg00081.txt.bz2 Jim Blandy writes: > Andrew Cagney writes: > > It sounds like the regcache layout needs to be changed. I'd break the > > raw EV registers down into hi:lo pairs so that each part can be > > supplied separatly - this appears to more closely reflect the > > underlying implementation. > > Okay. This is what I'd started doing thinking of it as a workaround, > so it works for me. Actually, maybe not. The sim provides access to the GPRs as full 64-bit values. It calls sim_fetch_register, gets 64 bits, and then calls supply_register on the full 64 bits. But core files and libthread_db operate on gregset_t values, which contain only the lower 32 bits of the GPRs. The regset 'supply' functions want to call regcache_raw_supply on only the lower halves. So does gdbsim_fetch_register need to be tweaked somehow? How would it know how to distribute the 64-bit value across high/low pairs? Do I need to use separate regcache layouts for sim and native? How would I even do that?