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: sh64 simulator register numbers


Andrew Cagney wrote:

See the directory gdb/regformats/ and (more importantly) the mail
archives for information on the changes that are being made to GDB so
that it will eventually be able to handle remote register numbers.

Hmm. Interesting. But the documentation seems to be mostly in the 'looking for volunteers' stage.

Can you give some salient time frames and/or keywords to narrow down the
search space a bit?
Some words would include regcache remote.c (especially all recent patches).

> !   /* SHmedia */
> !   SIM_SH64_R0_REGNUM = 128,

So you want this assignment to 128 be dropped, so that SIM_SH64_R0_REGNUM
just gets the next free number?
Yes, a pure enum.  As mentioned before, the d10v et.al. all do this.

The rest is all relative to SIM_SH64_R0_REGNUM.
There are 64 general purpose registers, starting with R0. The stack
pointer is R15.
> !   SIM_SH64_SP_REGNUM   = SIM_SH64_R0_REGNUM+15,
If a register has an alternative name, define that in a separate enum vis:

	enum {
	SIM_SH64_SP_REGNUM = SIM_SH64_R15_REGNUM
	};

After the general purpose registers, we want the program counter.
Is this assignment OK with you?

> !   SIM_SH64_PC_REGNUM   = SIM_SH64_R0_REGNUM+64,
No.  See above.

Or do you want r63 to be assigned a number relative to r0, and then
get automatically the next number for pc?

Or should we enumerate all 64 of the general purpose registers?
Yes.

Similar considerations apply to the 64 control registers,
8 target registers, how to assign a number to fpscr, and
the 64 floating point registers.
Andrew



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