From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cagney To: Eli Zaretskii Cc: kettenis@science.uva.nl, gdb@sources.redhat.com Subject: Re: i386 register numbering Date: Sat, 28 Jul 2001 08:12:00 -0000 Message-id: <3B62D68B.6010401@cygnus.com> References: <200107281012.GAA02314@delorie.com> <200107281214.IAA07439@delorie.com> X-SW-Source: 2001-07/msg00395.html >> From: Mark Kettenis >> Date: 28 Jul 2001 13:54:19 +0200 >> >> In GDB we have STAB_REG_TO_REGNUM, DWARF_REG_TO_REGNUM, etc. Yep. They map a stab/dwarf/... reg onto a cooked regnum (not to be confused with a raw reg found in the register cache). Because the i386 implements its registers using the old PSUEDO / CONVERT stuff, the importance of differentiating between the two may not be obvious. >> We have >> to provide a suitable definition for those in tm-i386.h. However, the >> problem mentioned above makes it a bit tricky, since GCC always uses >> the same register numbering scheme, regardless of the actual debugging >> format. Most ELF targets use the Dwarf scheme, even if the debugging >> format is stabs. And it seems that DJGPP uses the "default" scheme, >> even if you ask for Dwarf 2 debugging info. > > > DJGPP supports 3 debug info formats: COFF, stabs, and (lately) DWARF2; > the default is COFF. (Btw, I don't see any COFF_REG_TO_REGNUM.) I'm > guessing that no one (including myself [;-)] bothered to review the > register naming scheme when support for stabs and DWARF2 was added... > > But there's something in your explanation that I don't get: if GCC > always uses the same scheme, no matter what the debug info, and since > all i386 targets use the same i386.h header which defines this scheme, > how come DJGPP can use something different than the other targets? > What am I missing? There is something here I don't get either. At present it is assumed that, for a given ISA/ABI, there is only one mapping from a DEBUG reg to a REGNUM. I take it, Mark, that you're saying that in reality, the mapping depends on all of: {compiler, object format, debug format, ISA/ABI} (debug reg) -> REGNUM True? Ulgh! Andrew