[Top] [All Lists]

Re: gdb vs. gdbserver with -mips3 / 32bitmode userspace

To: "Maciej W. Rozycki" <>
Subject: Re: gdb vs. gdbserver with -mips3 / 32bitmode userspace
From: Johannes Stezenbach <>
Date: Tue, 31 Jan 2006 19:14:14 +0100
In-reply-to: <>
Mail-followup-to: Johannes Stezenbach <>, "Maciej W. Rozycki" <>,
Original-recipient: rfc822;
References: <> <>
User-agent: Mutt/1.5.11
On Tue, Jan 31, 2006, Maciej W. Rozycki wrote:
> On Tue, 31 Jan 2006, Johannes Stezenbach wrote:
> > I think (maybe in error ;-), that all binaries compiled for
> > a 32bit ABI, but a 64bit ISA, have this flag set, as the kernel
> > will refuse to execute 64bt code (i.e. not o32 or n32 ABI). Therefore,
> > shouldn't gdb also evaluate this flag when deciding about the ISA
> > register size?
>  O32 implies 32-bit registers no matter what ISA is specified (while 
> o32/MIPS-III is effectively o32/MIPS-II, o32/MIPS-IV makes a difference), 
> therefore it's a bug.  You should try sending your proposal to 
> <> instead.  But I smell the problem is 
> elsewhere -- mips_isa_regsize() shouldn't be called for the "cooked" 
> registers and these are ones you should only see under Linux or, as a 
> matter of fact, any hosted environment.  See mips_register_type() for a 
> start.

Yes, that's why I said I'm confused about mips_isa_regsize() vs.

mips_abi_regsize() correctly says the register size is 32bit for o32,
but mips_register_type() calls mips_isa_regsize(), not
mips_abi_regsize(). That's why I chose to "fix" mips_isa_regsize().

Or should mips_register_type() simply call mips_abi_regsize()?

Or is the correct fix to change gdbserver to transfer registers
in mips_isa_regsize() size, i.e. 64bit for 64bit ISA?
(But gdb would't use the upper 32bits of the registers anyway
with o32 ABI, and this would be more complicated to fix.)

I can't decide :-(


<Prev in Thread] Current Thread [Next in Thread>