From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10405 invoked by alias); 15 Jun 2003 00:13:59 -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 10397 invoked from network); 15 Jun 2003 00:13:59 -0000 Received: from unknown (HELO crack.them.org) (146.82.138.56) by sources.redhat.com with SMTP; 15 Jun 2003 00:13:59 -0000 Received: from dsl093-172-017.pit1.dsl.speakeasy.net ([66.93.172.17] helo=nevyn.them.org ident=mail) by crack.them.org with asmtp (Exim 3.12 #1 (Debian)) id 19RLAO-0005By-00; Sat, 14 Jun 2003 19:14:40 -0500 Received: from drow by nevyn.them.org with local (Exim 3.36 #1 (Debian)) id 19RL9V-0006fP-00; Sat, 14 Jun 2003 20:13:45 -0400 Date: Sun, 15 Jun 2003 00:13:00 -0000 From: Daniel Jacobowitz To: "Theodore A. Roth" Cc: gdb@sources.redhat.com Subject: Re: register_type method Message-ID: <20030615001345.GA25609@nevyn.them.org> Mail-Followup-To: "Theodore A. Roth" , gdb@sources.redhat.com References: <20030614223422.GA17448@nevyn.them.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.1i X-SW-Source: 2003-06/txt/msg00291.txt.bz2 On Sat, Jun 14, 2003 at 05:00:11PM -0700, Theodore A. Roth wrote: > On Sat, 14 Jun 2003, Daniel Jacobowitz wrote: > > :)On Sat, Jun 14, 2003 at 03:27:00PM -0700, Theodore A. Roth wrote: > :)> Hi, > :)> > :)> What builtin type should the *_register_type method return for the PC? > :)> > :)> I would think that it it should be builtin_type_void_func_ptr like the d10v > :)> does, but when I use that for the avr, I only get 2 bytes for the PC > :)> register size and I need 4 bytes. Using builtin_type_uint32 works but just > :)> doesn't feel right. > :)> > :)> I also tried using builtin_type_CORE_ADDR and that seemed to work as well as > :)> builtin_type_uint32. > :)> > :)> Here's my avr_register_type method I'm currently playing with: > :) > :)I've only been mostly-following previous discussions of the AVR, but - > :)why do you need a different number of bytes for a void (*)() than you > :)do for the PC? It seems to me that the PC should always be converted > :)(is this still POINTER_TO_ADDRESS?) in the same way a void (*)() would > :)be. > > That's a good question. I'm not sure I have an answer which is probably the > root of my confusion. I think you are correct that convertion should be the > same. I just did some comparison of the d10v and avr *_make_?addr() and > *_convert_?addr_to_raw() functions and it looks like the avr might not be > using those to the extent that it should not to mention a few > inconsistencies I just noticed. :-( > > Our remote targets (a simulator and a jtag ice glue program) try to do the > word address to byte address translation before replying to gdb queries. I'm > beginning to wonder if that was a mistake since we then have some > translations done on the gdb side and some on the remote target side. Thus > making things much more complicated than they need to be. > > Looks like I need to give this more thought and rework it a bit. Fortunately, you can correct this in GDB. You could make PC_REGNUM a pseudo, backed by the raw register holding what you got from the target, and use that to undo the shifting. > In the mean time, is there any objections to me finishing up the merging of > my frame-ify and removal of deprecated interface changes? I have those > working now and they work better than what is currently in cvs. Certainly no objection. -- Daniel Jacobowitz MontaVista Software Debian GNU/Linux Developer