register_type method

Theodore A. Roth
2003-06-14T22:29:12Z

Hi,

What builtin type should the *_register_type method return for the PC?

I would think that it it should be builtin_type_void_func_ptr like the d10v
does, but when I use that for the avr, I only get 2 bytes for the PC
register size and I need 4 bytes. Using builtin_type_uint32 works but just
doesn't feel right.

I also tried using builtin_type_CORE_ADDR and that seemed to work as well as
builtin_type_uint32.

Here's my avr_register_type method I'm currently playing with:

static struct type *
avr_register_type (struct gdbarch *gdbarch, int reg_nr)
{
if (reg_nr == AVR_PC_REGNUM)
/* return builtin_type_void_func_ptr; */
/* return builtin_type_uint32; */
return builtin_type_CORE_ADDR;
if (reg_nr == AVR_SP_REGNUM)
return builtin_type_void_data_ptr;
else
return builtin_type_uint8;
}

Ted Roth