From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12660 invoked by alias); 24 Jul 2002 04:17:23 -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 12650 invoked from network); 24 Jul 2002 04:17:22 -0000 Received: from unknown (HELO zwingli.cygnus.com) (208.245.165.35) by sources.redhat.com with SMTP; 24 Jul 2002 04:17:22 -0000 Received: by zwingli.cygnus.com (Postfix, from userid 442) id 524855EA11; Tue, 23 Jul 2002 23:17:21 -0500 (EST) To: Andrew Cagney Cc: gdb@sources.redhat.com Subject: Re: WIP: Register doco References: <3D38AF69.7020902@ges.redhat.com> <3D39954D.1020306@ges.redhat.com> <3D39CAD1.3060106@ges.redhat.com> <3D3AE41B.10201@ges.redhat.com> <3D3DF608.8010403@ges.redhat.com> From: Jim Blandy Date: Tue, 23 Jul 2002 21:17:00 -0000 In-Reply-To: <3D3DF608.8010403@ges.redhat.com> Message-ID: User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.1 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2002-07/txt/msg00244.txt.bz2 Andrew Cagney writes: > > I'm still trying to get a handle on your intent, though. In a case > > like MIPS III (an ISA with 64-bit registers) running o32 (an ABI which > > only uses the lower 32 bits of each register), would you suggest that > > printing registers in the usual way should show the full 64 bits of > > the register, or only the lower 32 bits? > > Sorry, I'm again lost. I earlier wrote (note edits): > > ``No, ABI. For instance mipsIII and o32. The o32 ABI thinks > registers have 32 bits yet the real register has 64 bits. This gives > two [cooked] views of the same [raw] register. When o32 debug info > indicates a value in two adjacent [cooked] registers, it is refering > to 32 bit and not 64 bit registers.'' > > I'm not discussing which of these should be printed since that is > outside of the scope of this discussion. (Sorry, the `what would this print' is a distraction.) Suppose I have a program compiled to the o32 ABI which has a 64-bit variable that the debug info says is in $a0. I'm running it on a MIPS III machine. This means that half of my variable is in the low 32 bits of $a0, and the the other half is in the low 32 bits of $a1. So, when you say that cooked registers are "ABI registers", are you saying that, in the cooked register set, $a0 and $a1 would be 32-bit registers, even though we're executing a 64-bit instruction set? Having the register sizes disagree with the actual instructions being executed is what seems like a bad idea to me.