aboutsummaryrefslogtreecommitdiff
path: root/gdb/config
diff options
context:
space:
mode:
authorMichael Snyder <msnyder@vmware.com>1996-12-26 23:16:27 +0000
committerMichael Snyder <msnyder@vmware.com>1996-12-26 23:16:27 +0000
commita7f6f9ed4d96db82b9593bd73b45fba24a306b1c (patch)
tree948a7a2239d5bcd8bf3d7d2e77beea79dbfb2109 /gdb/config
parent280f90e1a0d74e0b38ea6385a41609dacd5e18af (diff)
downloadgdb-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.h63
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)