From 866b76ea9c3058b3b33ed77fb4d5a3c85fd206e3 Mon Sep 17 00:00:00 2001 From: "Theodore A. Roth" Date: Sun, 15 Jun 2003 22:01:05 +0000 Subject: [PATCH] * avr-tdep.c (avr_register_byte): Delete function. (avr_register_raw_size): Delete function. (avr_register_virtual_size): Delete function. (avr_register_virtual_type): Delete function. (avr_register_type): New function. (avr_address_to_pointer): Remove unused code. (avr_read_fp): Need to read FP as two separate bytes due to change to avr_register_type() usage. (avr_gdbarch_init): Don't set deprecated_register_size. Don't set deprecated_register_bytes. Don't set deprecated_register_byte. Don't set deprecated_register_raw_size. Don't set deprecated_max_register_raw_size. Don't set deprecated_register_virtual_size. Don't set deprecated_max_register_virtual_size. Don't set deprecated_register_virtual_type. Set register_type method. --- gdb/ChangeLog | 20 +++++++++++++++ gdb/avr-tdep.c | 81 +++++++++++----------------------------------------------- 2 files changed, 35 insertions(+), 66 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index a9b8d6a..01b9d72 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,23 @@ +2003-06-15 Theodore A. Roth + + * avr-tdep.c (avr_register_byte): Delete function. + (avr_register_raw_size): Delete function. + (avr_register_virtual_size): Delete function. + (avr_register_virtual_type): Delete function. + (avr_register_type): New function. + (avr_address_to_pointer): Remove unused code. + (avr_read_fp): Need to read FP as two separate bytes due to change to + avr_register_type() usage. + (avr_gdbarch_init): Don't set deprecated_register_size. + Don't set deprecated_register_bytes. + Don't set deprecated_register_byte. + Don't set deprecated_register_raw_size. + Don't set deprecated_max_register_raw_size. + Don't set deprecated_register_virtual_size. + Don't set deprecated_max_register_virtual_size. + Don't set deprecated_register_virtual_type. + Set register_type method. + 2003-06-15 Daniel Jacobowitz * Makefile.in (linux-nat.o): Add rule. diff --git a/gdb/avr-tdep.c b/gdb/avr-tdep.c index 0f8f1d0..a7ef17c 100644 --- a/gdb/avr-tdep.c +++ b/gdb/avr-tdep.c @@ -176,60 +176,19 @@ avr_register_name (int regnum) return register_names[regnum]; } -/* Index within `registers' of the first byte of the space for - register REGNUM. */ - -static int -avr_register_byte (int regnum) -{ - if (regnum < AVR_PC_REGNUM) - return regnum; - else - return AVR_PC_REG_INDEX; -} - -/* Number of bytes of storage in the actual machine representation for - register REGNUM. */ - -static int -avr_register_raw_size (int regnum) -{ - switch (regnum) - { - case AVR_PC_REGNUM: - return 4; - case AVR_SP_REGNUM: - case AVR_FP_REGNUM: - return 2; - default: - return 1; - } -} - -/* Number of bytes of storage in the program's representation - for register N. */ - -static int -avr_register_virtual_size (int regnum) -{ - return TYPE_LENGTH (REGISTER_VIRTUAL_TYPE (regnum)); -} - /* Return the GDB type object for the "standard" data type of data in register N. */ static struct type * -avr_register_virtual_type (int regnum) +avr_register_type (struct gdbarch *gdbarch, int reg_nr) { - switch (regnum) - { - case AVR_PC_REGNUM: - return builtin_type_unsigned_long; - case AVR_SP_REGNUM: - return builtin_type_unsigned_short; - default: - return builtin_type_unsigned_char; - } + if (reg_nr == AVR_PC_REGNUM) + return builtin_type_uint32; + + if (reg_nr == AVR_SP_REGNUM) + return builtin_type_void_data_ptr; + else + return builtin_type_uint8; } /* Instruction address checks and convertions. */ @@ -326,14 +285,6 @@ avr_pointer_to_address (struct type *type, const void *buf) { CORE_ADDR addr = extract_unsigned_integer (buf, TYPE_LENGTH (type)); - if (TYPE_CODE_SPACE (TYPE_TARGET_TYPE (type))) - { - fprintf_unfiltered (gdb_stderr, "CODE_SPACE ---->> ptr->addr: 0x%lx\n", - addr); - fprintf_unfiltered (gdb_stderr, - "+++ If you see this, please send me an email \n"); - } - /* Is it a code address? */ if (TYPE_CODE (TYPE_TARGET_TYPE (type)) == TYPE_CODE_FUNC || TYPE_CODE (TYPE_TARGET_TYPE (type)) == TYPE_CODE_METHOD @@ -384,7 +335,12 @@ avr_write_sp (CORE_ADDR val) static CORE_ADDR avr_read_fp (void) { - return (avr_make_saddr (read_register (AVR_FP_REGNUM))); + CORE_ADDR fp; + + fp = read_register (AVR_FP_REGNUM); + fp += (read_register (AVR_FP_REGNUM+1) << 8); + + return (avr_make_saddr (fp)); } /* avr_scan_prologue is also used as the @@ -1131,14 +1087,7 @@ avr_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_pc_regnum (gdbarch, AVR_PC_REGNUM); set_gdbarch_register_name (gdbarch, avr_register_name); - set_gdbarch_deprecated_register_size (gdbarch, 1); - set_gdbarch_deprecated_register_bytes (gdbarch, AVR_NUM_REG_BYTES); - set_gdbarch_deprecated_register_byte (gdbarch, avr_register_byte); - set_gdbarch_deprecated_register_raw_size (gdbarch, avr_register_raw_size); - set_gdbarch_deprecated_max_register_raw_size (gdbarch, 4); - set_gdbarch_deprecated_register_virtual_size (gdbarch, avr_register_virtual_size); - set_gdbarch_deprecated_max_register_virtual_size (gdbarch, 4); - set_gdbarch_deprecated_register_virtual_type (gdbarch, avr_register_virtual_type); + set_gdbarch_register_type (gdbarch, avr_register_type); set_gdbarch_print_insn (gdbarch, print_insn_avr); -- 2.7.4