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 > <gdb-patches@xxxxxxxxxxxxxxxxxx> 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(). 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 :-( Johannes