This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA] mips-tdep.c: Add dwarf/dwarf2 regnum mapping functions



mips_tdep could certainly gain a local tdep->fp0_regnum though.


Did you notice the references to FP0_REGNUM in mips-linux-tdep.c and
mips-nat.c?.  If we do as you suggest, an access method will need to
be added to mips-tdep.h for getting at tdep->fp0_regnum (since you
refuse to export the mips tdep struct).  Also, all occurrences of
FP0_REGNUM in mips-linux-tdep.c and mips-nat.c will need to be
rewritten to use this access method.

I ignored everything that wasn't core. Such a rewrite goes on my to-do list.

Certainly all of this could be done, but the need to know the first
floating point register number is something that's shared among a
number of ports.  Doesn't it makes sense to define (as has already
been done) a common mechanism for determining this register number
rather than letting each port develop ad hoc methods?

The problem is that FP0_REGNUM has no narrow and well defined meaning. Same problem as with SP_REGNUM, PC_REGNUM, FP_REGNUM.


As a specific example. Given an ISA with 64 bit FP registers that is running a 32 bit FP ABI (debug info refers to 32 bit FP registers). /proc assumes FP0_REGNUM designates the first 64 bit [raw] FP register, yet dwarf2 assumes that FP0_REGNUM designates the first 32 bit [cooked] FP register.

It doesn't work (well, ok the current mess involving register convertible kind of half sort of makes it appear to work). Per previous patches, that code needs an overhaul.

Andrew



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]