From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18607 invoked by alias); 24 Jul 2002 16:09:01 -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 18600 invoked from network); 24 Jul 2002 16:09:00 -0000 Received: from unknown (HELO localhost.redhat.com) (216.138.202.10) by sources.redhat.com with SMTP; 24 Jul 2002 16:09:00 -0000 Received: from ges.redhat.com (localhost [127.0.0.1]) by localhost.redhat.com (Postfix) with ESMTP id 4E2DA3D66; Wed, 24 Jul 2002 12:09:00 -0400 (EDT) Message-ID: <3D3ED11C.3000906@ges.redhat.com> Date: Wed, 24 Jul 2002 09:09:00 -0000 From: Andrew Cagney User-Agent: Mozilla/5.0 (X11; U; NetBSD macppc; en-US; rv:1.0.0) Gecko/20020708 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Jim Blandy 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> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2002-07/txt/msg00249.txt.bz2 >> 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. As I pointed out in the above, there are two cooked $a0's. One is 32 bits and one is 64 bits. With regard to which should be user visible, I wrote: ``(Should user visible registers be displayed according to the underlying ISA or ABI is an item for debate. It has never been specified and I suspect in part because GDB, prior to gdbarch_register_read/write, couldn't handle both.)'' It was in paren because I want to first fix the regcache (and its doco). That debate can be left to when someone has the cycles spare for fixing it. enjoy, Andrew