diff options
author | Michael Eager <eager@eagercon.com> | 2014-07-19 17:47:52 -0700 |
---|---|---|
committer | Michael Eager <eager@eagercon.com> | 2014-07-19 17:47:52 -0700 |
commit | 164224e96ca270d6cbb61d3e326fc1b0453b30a6 (patch) | |
tree | adbf24226a755d4d3a54cbca093af0db235cb75b /gdb/microblaze-tdep.h | |
parent | 57319490943d7ce425c515356f6758ff81bf6c58 (diff) | |
download | gdb-164224e96ca270d6cbb61d3e326fc1b0453b30a6.zip gdb-164224e96ca270d6cbb61d3e326fc1b0453b30a6.tar.gz gdb-164224e96ca270d6cbb61d3e326fc1b0453b30a6.tar.bz2 |
Fix for remote G Packet message too long error for baremetal.
Prior to version MicroBlaze v8.10.a,EDK 13.1, XMD's gdbserver stub returned 57
registers in response to GDB's G request. Starting with version MicroBlaze
v8.10.a, EDK 13.1, XMD added the slr and shr register, for a count of 59
registers. This patch adds these registers to the expected G response. This patch
fixes the above problem for baremetal and also supports the backward compatibility.
ChangeLog:
2014-07-02 Ajit Agarwal <ajitkum@xilinx.com>
* microblaze-tdep.c (microblaze_register_names): Add
the rshr and rslr register names.
(microblaze_gdbarch_init): Use of tdesc_has_registers.
Use of tdesc_find_feature. Use of tdesc_data_alloc.
Use of tdesc_numbered_register. Use of
microblaze_register_g_packet_guesses. Use of
tdesc_use_registers. Use of set_gdbarch_register_type.
(microblaze_register_g_packet_guesses): New.
* microblaze-tdep.h (microblaze_reg_num): Add
field MICROBLAZE_SLR_REGNUM MICROBLAZE_SHR_REGNUM
MICROBLAZE_NUM_REGS and MICROBLAZE_NUM_CORE_REGS.
(microblaze_frame_cache): Use of MICROBLAZE_NUM_REGS.
* features/microblaze-core.xml: New file.
* features/microblaze-stack-protect.xml: New file.
* features/microblaze-with-stack-protect.c: New file.
* features/microblaze-with-stack-protect.xml: New file.
* features/microblaze.xml: New file.
* features/microblaze.c: New file.
* features/Makefile (microblaze-with-stack-protect): Add
microblaze-with-stack-protect microblaze and
microblaze-expedite.
* regformats/microblaze-with-stack-protect.dat: New file.
* regformats/microblaze.dat: New file.
* doc/gdb.texinfo (MicroBlaze Features): New.
Signed-off-by:Ajit Agarwal ajitkum@xilinx.com
Diffstat (limited to 'gdb/microblaze-tdep.h')
-rw-r--r-- | gdb/microblaze-tdep.h | 50 |
1 files changed, 26 insertions, 24 deletions
diff --git a/gdb/microblaze-tdep.h b/gdb/microblaze-tdep.h index a532092..ba240e9 100644 --- a/gdb/microblaze-tdep.h +++ b/gdb/microblaze-tdep.h @@ -26,30 +26,8 @@ struct gdbarch_tdep { }; -struct microblaze_frame_cache -{ - /* Base address. */ - CORE_ADDR base; - CORE_ADDR pc; - - /* Do we have a frame? */ - int frameless_p; - - /* Frame size. */ - int framesize; - - /* Frame register. */ - int fp_regnum; - - /* Offsets to saved registers. */ - int register_offsets[57]; /* Must match MICROBLAZE_NUM_REGS. */ - - /* Table of saved registers. */ - struct trad_frame_saved_reg *saved_regs; -}; - /* Register numbers. */ -enum microblaze_regnum +enum microblaze_regnum { MICROBLAZE_R0_REGNUM, MICROBLAZE_R1_REGNUM, MICROBLAZE_SP_REGNUM = MICROBLAZE_R1_REGNUM, @@ -107,9 +85,33 @@ enum microblaze_regnum MICROBLAZE_RTLBX_REGNUM, MICROBLAZE_RTLBSX_REGNUM, MICROBLAZE_RTLBLO_REGNUM, - MICROBLAZE_RTLBHI_REGNUM + MICROBLAZE_RTLBHI_REGNUM, + MICROBLAZE_SLR_REGNUM, MICROBLAZE_NUM_CORE_REGS = MICROBLAZE_SLR_REGNUM, + MICROBLAZE_SHR_REGNUM, + MICROBLAZE_NUM_REGS }; +struct microblaze_frame_cache +{ + /* Base address. */ + CORE_ADDR base; + CORE_ADDR pc; + + /* Do we have a frame? */ + int frameless_p; + + /* Frame size. */ + int framesize; + + /* Frame register. */ + int fp_regnum; + + /* Offsets to saved registers. */ + int register_offsets[MICROBLAZE_NUM_REGS]; + + /* Table of saved registers. */ + struct trad_frame_saved_reg *saved_regs; +}; /* All registers are 32 bits. */ #define MICROBLAZE_REGISTER_SIZE 4 |