aboutsummaryrefslogtreecommitdiff
path: root/gdb/config/d10v/tm-d10v.h
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/config/d10v/tm-d10v.h')
-rw-r--r--gdb/config/d10v/tm-d10v.h25
1 files changed, 8 insertions, 17 deletions
diff --git a/gdb/config/d10v/tm-d10v.h b/gdb/config/d10v/tm-d10v.h
index f0760dc..85aa3ef 100644
--- a/gdb/config/d10v/tm-d10v.h
+++ b/gdb/config/d10v/tm-d10v.h
@@ -1,5 +1,5 @@
/* Target-specific definition for the Mitsubishi D10V
- Copyright (C) 1996 Free Software Foundation, Inc.
+ Copyright (C) 1996,1999 Free Software Foundation, Inc.
This file is part of GDB.
@@ -19,6 +19,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Contributed by Martin Hunt, hunt@cygnus.com */
+
/* #define GDB_TARGET_IS_D10V - moved to gdbarch.h */
/* Define the bit, byte, and word ordering of the machine. */
@@ -118,21 +119,14 @@ extern struct type *d10v_register_virtual_type PARAMS ((int reg_nr));
/* convert $pc and $sp to/from virtual addresses */
-#define REGISTER_CONVERTIBLE(N) ((N) == PC_REGNUM || (N) == SP_REGNUM)
+extern int d10v_register_convertible PARAMS ((int nr));
+#define REGISTER_CONVERTIBLE(N) (d10v_register_convertible ((N)))
+extern void d10v_register_convert_to_virtual PARAMS ((int regnum, struct type *type, char *from, char *to));
#define REGISTER_CONVERT_TO_VIRTUAL(REGNUM,TYPE,FROM,TO) \
-{ \
- ULONGEST x = extract_unsigned_integer ((FROM), REGISTER_RAW_SIZE (REGNUM)); \
- if (REGNUM == PC_REGNUM) x = (x << 2) | IMEM_START; \
- else x |= DMEM_START; \
- store_unsigned_integer ((TO), TYPE_LENGTH(TYPE), x); \
-}
+ d10v_register_convert_to_virtual ((REGNUM), (TYPE), (FROM), (TO))
+extern void d10v_register_convert_to_raw PARAMS ((struct type *type, int regnum, char *from, char *to));
#define REGISTER_CONVERT_TO_RAW(TYPE,REGNUM,FROM,TO) \
-{ \
- ULONGEST x = extract_unsigned_integer ((FROM), TYPE_LENGTH(TYPE)); \
- x &= 0x3ffff; \
- if (REGNUM == PC_REGNUM) x >>= 2; \
- store_unsigned_integer ((TO), 2, x); \
-}
+ d10v_register_convert_to_raw ((TYPE), (REGNUM), (FROM), (TO))
extern CORE_ADDR d10v_make_daddr PARAMS ((CORE_ADDR x));
#define D10V_MAKE_DADDR(x) (d10v_make_daddr (x))
@@ -252,9 +246,6 @@ extern CORE_ADDR d10v_saved_pc_after_call PARAMS ((struct frame_info *frame));
extern void d10v_frame_find_saved_regs PARAMS ((struct frame_info *, struct frame_saved_regs *));
-#define NAMES_HAVE_UNDERSCORE
-
-
/* DUMMY FRAMES. Need these to support inferior function calls. They
work like this on D10V: First we set a breakpoint at 0 or __start.
Then we push all the registers onto the stack. Then put the