Re: [PATCH v3] gdb: bfin: new port

Mike Frysinger
2010-12-14T22:01:14Z

[-- Attachment #1: Type: Text/Plain, Size: 2106 bytes --]

On Tuesday, December 14, 2010 16:31:22 Pedro Alves wrote:
> On Tuesday 14 December 2010 20:42:26, Mike Frysinger wrote:
> > + /* Pseudo Registers */
> > + BFIN_PC_REGNUM,
> > + BFIN_CC_REGNUM,
> > + BFIN_TEXT_ADDR, /* Address of .text section. */
> > + BFIN_TEXT_END_ADDR, /* Address of the end of .text section.
> > */ + BFIN_DATA_ADDR, /* Address of .data section. */ +
> > + BFIN_FDPIC_EXEC_REGNUM,
> > + BFIN_FDPIC_INTERP_REGNUM,
> > +
>
> I thought these (text_addr ... fdpic*) would be removed?

i was thinking of gdbserver, but i can do it here too. pretty sure the first
three are actually for FLAT, but the common code takes care of those. i can
comment out these as well.

> Can you explain why are the PC and CC registers pseudo
> registers, but supported as being raw registers anyway? Couldn't
> gdb compute them itself from the other registers, with
> gdb's pseudo register support (gdbarch_pseudo_register_read|write)?
> googling I found you mentioning that the "CC pseudo register can
> be deduced from the ASTAT register", though further googling doesn't
> find any mention of what ASTAT is. I'm sure there's a good reason,
> I'm probably just missing a comment somewhere.

i dont see how PC can be deduced from anything. it's considered pseudo
because in the ISA there is no way of doing "PC = <some reg or value>" or
"<reg> = PC". you can only indirectly affect it by doing something such as
"<reg> = <some value>" followed by "JUMP (reg)". Linux indirectly manipulates
it via the RETI (return from interrupt) register (which is why the Blackfin
kernel actually loads RETI into the PC slot in the register stack). you do
get a bit more direct access to it via JTAG, but that doesnt count.

CC is actually a single bit in the ASTAT (arithmetic status) register, but
often is treated as an actual register in much of the ISA. such as
assignments or logical tests. you can do "<reg> = CC" and "CC = <reg>", but
you cant do this with any other ASTAT bit (like AZ, AN, etc...).
-mike

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]