/* Parameters for execution on a H8/300 series machine.
- Copyright (C) 1992 Free Software Foundation, Inc.
+ Copyright 1992, 1993 Free Software Foundation, Inc.
This file is part of GDB.
#define INNER_THAN <
-/* Sequence of bytes for breakpoint instruction.
- This is a TRAP instruction. The last 4 bits (0xf below) is the
- vector. Systems which don't use 0xf should define BPT_VECTOR
- themselves before including this file. */
-
-#define BPT_VECTOR 0xf
-
-
-
-#define BREAKPOINT {0x4e, (0x40 | BPT_VECTOR)}
+#define BREAKPOINT {0x53, 0x00}
/* If your kernel resets the pc after the trap happens you may need to
#define REGISTER_TYPE unsigned short
-# define NUM_REGS 10
-# define REGISTER_BYTES (10*2)
+/*# define NUM_REGS 20 /* 20 for fake HW support */
+# define NUM_REGS 11
+# define REGISTER_BYTES (NUM_REGS*2)
/* Index within `registers' of the first byte of the space for
/* Initializer for an array of names of registers.
Entries beyond the first NUM_REGS are ignored. */
+#if NUM_REGS==20
#define REGISTER_NAMES \
- {"r0", "r1", "r2", "r3", "r4", "r5", "r6", "sp","ccr","pc"}
-
+ {"r0", "r1", "r2", "r3", "r4", "r5", "r6", "sp",\
+ "ccr","pc","cycles","hcheck","tier","tcsr","frc",\
+ "ocra","ocrb","tcr","tocr","icra"}
+#else
+#define REGISTER_NAMES \
+ {"r0", "r1", "r2", "r3", "r4", "r5", "r6", "sp", "ccr","pc","cycles"}
+#endif
/* Register numbers of various important registers.
Note that some of these values are "real" register numbers,
/* In the case of the H8/300, the frame's nominal address
is the address of a 2-byte word containing the calling frame's address. */
-
-
-
/* Use the alternate method of avoiding running up off the end of
the frame chain or following frames back into the startup code.
- See the comments in blockframe.c */
-
-#define FRAME_CHAIN_VALID(chain, thisframe) \
- (chain != 0 \
- && !(inside_main_scope ((thisframe)->pc)) \
- && !(inside_entry_scope ((thisframe)->pc)))
+ See the comments in objfile.h */
+#define FRAME_CHAIN_VALID_ALTERNATE
/* Define other aspects of the stack frame. */
#define REGISTER_CONVERT_TO_VIRTUAL(REGNUM,FROM,TO) \
-{ bcopy ((FROM), (TO), 2); }
+{ memcpy((TO), (FROM), 2); }
#define REGISTER_CONVERT_TO_RAW(REGNUM,FROM,TO) \
-{ bcopy ((FROM), (TO), 4); }
+{ memcpy((TO), (FROM), 2); }
#define BEFORE_MAIN_LOOP_HOOK \
hms_before_main_loop();
-
-#define NAMES_HAVE_UNDERSCORE
-
typedef unsigned short INSN_WORD;
#define ADDR_BITS_REMOVE(addr) ((addr) & 0xffff)
#define ADDR_BITS_SET(addr) (((addr)))
#define read_memory_short(x) (read_memory_integer(x,2) & 0xffff)
+#define DONT_USE_REMOTE
+
+
+#define PRINT_REGISTER_HOOK(regno) print_register_hook(regno)
+