This is the mail archive of the gdb@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: FP aliases


Hi,

From the docs in gdb/std-regs.c:75, value_of_builtin_frame_fp_reg() it states that it will automagically use any registers named "fp" as fp (instead of using the deprecated fp functions). So what I read is that I need to reply "fp" in one of the registers in the set_gdbarch_register_name() function, right?

The user guide documentation for $fp reads:


@value{GDBN} has four ``standard'' register names that are available (in
expressions) on most machines---whenever they do not conflict with an
architecture's canonical mnemonics for registers.  The register names
@code{$pc} and @code{$sp} are used for the program counter register and
the stack pointer.  @code{$fp} is used for a register that contains a
pointer to the current stack frame, and @code{$ps} is used for a
register that contains the processor status.  For example,
you could print the program counter in hex with

If your architecture does not have a $fp, do not try to provide it. GDB will map $fp onto the frame's base address (as defined by the debug info).


All this goes back to a very old ARM bug where $fp gave different values in different contexts vis:

	(gdb) print $fp
	(gdb) info registers fp

For my arch, the tic4x, there is no hardware registers named "fp". Is it wise to replace my "ar3" with "fp". Users will probably get confused when they are introduced to the "fp" register, as they do not know the physical relation. But it states that I can create an alias. How? And why is that dangerous?

Only include $fp in the register names when there is a register, as defined by the ISA, that has the name "fp".


The d10v doesn't have a register called FP, so doesn't provide "fp". Instead, $fp is mapped onto the frame's base address.

I also observere that for the d10v target, no register is named "fp", but still they manage to do without the the deprecated fp functions. How is that?

Yes. An architecture function is deprecated when either: it isn't needed at all (as with FP_REGNUM, READ_FP); or has been made redundant by a newer mechanism.


Andrew



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