diff options
author | Michael Snyder <msnyder@vmware.com> | 1996-12-26 23:16:27 +0000 |
---|---|---|
committer | Michael Snyder <msnyder@vmware.com> | 1996-12-26 23:16:27 +0000 |
commit | a7f6f9ed4d96db82b9593bd73b45fba24a306b1c (patch) | |
tree | 948a7a2239d5bcd8bf3d7d2e77beea79dbfb2109 /gdb/config | |
parent | 280f90e1a0d74e0b38ea6385a41609dacd5e18af (diff) | |
download | gdb-a7f6f9ed4d96db82b9593bd73b45fba24a306b1c.zip gdb-a7f6f9ed4d96db82b9593bd73b45fba24a306b1c.tar.gz gdb-a7f6f9ed4d96db82b9593bd73b45fba24a306b1c.tar.bz2 |
Thu Dec 26 15:15:21 1996 Michael Snyder <msnyder@cleaver.cygnus.com>
* sparclet-rom.c: Remove includes of Unix system files.
Add function "sparclet_supply_register" so that parse_register_dump
will not seg-fault by calling a null function pointer.
Remove XMODEM support (unfinished work?).
Remove flag "MO_HANDLE_NL", so monitor's output can be read by humans.
Add fill command.
Remove colon from getreg.resp_delim so PSR register will work.
Remove pointer to sparclet_load (downloading SREC's doesn't work).
Null out local register names for %g0, all %cc and all %asr regs,
since the monitor can't report them. Will return zero instead.
* sparclet-stub.c: New -- remote protocol support for sparclet CPU.
* config/sparc/tm-sparclet.h: Re-arrange REGISTER_NAMES:
Add back %g0 and %psr, add %cc coprocessor regs, add %asr regs.
Adjust NUM_REGS and REGISTER_BYTES accordingly
Diffstat (limited to 'gdb/config')
-rw-r--r-- | gdb/config/sparc/tm-sparclet.h | 63 |
1 files changed, 41 insertions, 22 deletions
diff --git a/gdb/config/sparc/tm-sparclet.h b/gdb/config/sparc/tm-sparclet.h index b4d4bcb..5951891 100644 --- a/gdb/config/sparc/tm-sparclet.h +++ b/gdb/config/sparc/tm-sparclet.h @@ -37,6 +37,13 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #define BIG_BREAKPOINT {0x91, 0xd0, 0x20, 0x01} #define LITTLE_BREAKPOINT {0x01, 0x20, 0xd0, 0x91} +#undef NUM_REGS /* formerly "72" */ +/* WIN FP CPU CCP ASR AWR APSR */ +#define NUM_REGS (32 + 32 + 8 + 8 + 8/*+ 32 + 1*/) + +#undef REGISTER_BYTES /* formerly "(32*4 + 32*4 + 8*4)" */ +#define REGISTER_BYTES (32*4 + 32*4 + 8*4 + 8*4 + 8*4/* + 32*4 + 1*4*/) + /* Initializer for an array of names of registers. There should be NUM_REGS strings in this initializer. */ /* Sparclet has no fp! */ @@ -44,44 +51,56 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ change the numbers here. */ #undef REGISTER_NAMES -/* g0 removed - Sparclet returns error if attempt to access. */ -/* psr removed - Sparclet does not return ": " in response, - the monitor is therefore unable to get the expected response delimiter, - causing a timeout. */ #define REGISTER_NAMES \ -{ "", "g1", "g2", "g3", "g4", "g5", "g6", "g7", \ +{ "g0", "g1", "g2", "g3", "g4", "g5", "g6", "g7", \ "o0", "o1", "o2", "o3", "o4", "o5", "o6", "o7", \ "l0", "l1", "l2", "l3", "l4", "l5", "l6", "l7", \ "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", \ - \ - 0, 0, 0, 0, 0, 0, 0, 0, \ - 0, 0, 0, 0, 0, 0, 0, 0, \ - 0, 0, 0, 0, 0, 0, 0, 0, \ - 0, 0, 0, 0, 0, 0, 0, 0, \ - \ - "y", 0, "wim", "tbr", "pc", "npc", 0, 0 } + \ + "", "", "", "", "", "", "", "", /* no FPU regs */ \ + "", "", "", "", "", "", "", "", \ + "", "", "", "", "", "", "", "", \ + "", "", "", "", "", "", "", "", \ + /* no CPSR, FPSR */ \ + "y", "psr", "wim", "tbr", "pc", "npc", "", "", \ + \ + "ccsr", "ccpr", "cccrcr", "ccor", "ccobr", "ccibr", "ccir", "", \ + \ + "asr1", "asr15", "asr17", "asr18", "asr19", "asr20", "asr21", "asr22", \ +/* \ + "awr0", "awr1", "awr2", "awr3", "awr4", "awr5", "awr6", "awr7", \ + "awr8", "awr9", "awr10", "awr11", "awr12", "awr13", "awr14", "awr15", \ + "awr16", "awr17", "awr18", "awr19", "awr20", "awr21", "awr22", "awr23", \ + "awr24", "awr25", "awr26", "awr27", "awr28", "awr29", "awr30", "awr31", \ + "apsr", \ + */ \ +} /* Remove FP dependant code which was defined in tm-sparc.h */ #undef FP0_REGNUM /* Floating point register 0 */ #undef FPS_REGNUM /* Floating point status register */ #undef CPS_REGNUM /* Coprocessor status register */ +/* sparclet register numbers */ +#define CCSR_REGNUM 72 + #undef EXTRACT_RETURN_VALUE -#define EXTRACT_RETURN_VALUE(TYPE,REGBUF,VALBUF) \ +#define EXTRACT_RETURN_VALUE(TYPE,REGBUF,VALBUF) \ { \ - memcpy ((VALBUF), \ - (char *)(REGBUF) + REGISTER_RAW_SIZE (O0_REGNUM) * 8 + \ - (TYPE_LENGTH(TYPE) >= REGISTER_RAW_SIZE (O0_REGNUM) \ - ? 0 : REGISTER_RAW_SIZE (O0_REGNUM) - TYPE_LENGTH(TYPE)), \ - TYPE_LENGTH(TYPE)); \ + memcpy ((VALBUF), \ + (char *)(REGBUF) + REGISTER_RAW_SIZE (O0_REGNUM) * 8 + \ + (TYPE_LENGTH(TYPE) >= REGISTER_RAW_SIZE (O0_REGNUM) \ + ? 0 : REGISTER_RAW_SIZE (O0_REGNUM) - TYPE_LENGTH(TYPE)), \ + TYPE_LENGTH(TYPE)); \ } #undef STORE_RETURN_VALUE #define STORE_RETURN_VALUE(TYPE,VALBUF) \ - { \ - /* Other values are returned in register %o0. */ \ - write_register_bytes (REGISTER_BYTE (O0_REGNUM), (VALBUF), \ - TYPE_LENGTH (TYPE)); \ + { \ + /* Other values are returned in register %o0. */ \ + write_register_bytes (REGISTER_BYTE (O0_REGNUM), (VALBUF), \ + TYPE_LENGTH (TYPE)); \ } + #undef PRINT_REGISTER_HOOK #define PRINT_REGISTER_HOOK(regno) |