OSDN Git Service

* vax-tdep.h: Update copyright year. Adjust comments.
authorMark Kettenis <kettenis@gnu.org>
Mon, 12 Apr 2004 16:49:35 +0000 (16:49 +0000)
committerMark Kettenis <kettenis@gnu.org>
Mon, 12 Apr 2004 16:49:35 +0000 (16:49 +0000)
(VAX_REGISTER_SIZE, VAX_REGISTER_BYTES, VAX_MAX_REGISTER_RAW_SIZE,
VAX_MAX_REGISTER_VIRTUAL_SIZE): Remove macros.
(vax_regnum): New enum.  Replacing...
(VAX_AP_REGNUM, VAX_FP_REGNUM, VAX_SP_REGNUM, VAX_PC_REGNUM)
(VAX_PS_REGNUM): ... these removed macros.
* vax-tdep.c (vax_register_name): Remove prototype.
(vax_register_name): Reorganize somewhat.  Use ARRAY_SIZE.
(vax_register_byte, vax_register_raw_size,
vax_register_virtual_size, vax_register_virtual_type): Remove
functions.
(vax_register_type): New function.
(vax_breakpoint_from_pc): Reorganize.
(vax_gdbarch_init): Set register_type.  Don't set
deprecated_register_size, deprecated_register_bytes,
deprecated_register_byte, deprecated_register_raw_size,
deprecated_max_register_raw_size,
deprecated_register_virtual_size,
deprecated_max_register_virtual_size and
deprecated_register_virtual_type.  Add comment on stack direction.

gdb/ChangeLog
gdb/vax-tdep.c
gdb/vax-tdep.h

index 7af3426..73c553c 100644 (file)
@@ -1,3 +1,26 @@
+2004-04-12  Mark Kettenis  <kettenis@gnu.org>
+
+       * vax-tdep.h: Update copyright year.  Adjust comments.
+       (VAX_REGISTER_SIZE, VAX_REGISTER_BYTES, VAX_MAX_REGISTER_RAW_SIZE,
+       VAX_MAX_REGISTER_VIRTUAL_SIZE): Remove macros.
+       (vax_regnum): New enum.  Replacing...
+       (VAX_AP_REGNUM, VAX_FP_REGNUM, VAX_SP_REGNUM, VAX_PC_REGNUM)
+       (VAX_PS_REGNUM): ... these removed macros.
+       * vax-tdep.c (vax_register_name): Remove prototype.
+       (vax_register_name): Reorganize somewhat.  Use ARRAY_SIZE.
+       (vax_register_byte, vax_register_raw_size,
+       vax_register_virtual_size, vax_register_virtual_type): Remove
+       functions.
+       (vax_register_type): New function.
+       (vax_breakpoint_from_pc): Reorganize.
+       (vax_gdbarch_init): Set register_type.  Don't set
+       deprecated_register_size, deprecated_register_bytes,
+       deprecated_register_byte, deprecated_register_raw_size,
+       deprecated_max_register_raw_size,
+       deprecated_register_virtual_size,
+       deprecated_max_register_virtual_size and
+       deprecated_register_virtual_type.  Add comment on stack direction.
+
 2004-04-11  Mark Kettenis  <kettenis@gnu.org>
 
        * amd64-tdep.h (amd64_regnum): Add AMD64_CS_REGNUM,
index a0eac7d..cf2f86c 100644 (file)
@@ -35,8 +35,6 @@
 
 #include "vax-tdep.h"
 
-static gdbarch_register_name_ftype vax_register_name;
-
 static gdbarch_skip_prologue_ftype vax_skip_prologue;
 static gdbarch_frame_num_args_ftype vax_frame_num_args;
 static gdbarch_deprecated_frame_chain_ftype vax_frame_chain;
@@ -45,45 +43,32 @@ static gdbarch_deprecated_extract_return_value_ftype vax_extract_return_value;
 
 static gdbarch_deprecated_push_dummy_frame_ftype vax_push_dummy_frame;
 \f
+
+/* Return the name of register REGNUM.  */
+
 static const char *
-vax_register_name (int regno)
+vax_register_name (int regnum)
 {
   static char *register_names[] =
   {
-    "r0",  "r1",  "r2",  "r3", "r4", "r5", "r6", "r7",
-    "r8",  "r9", "r10", "r11", "ap", "fp", "sp", "pc",
+    "r0", "r1", "r2",  "r3",  "r4", "r5", "r6", "r7",
+    "r8", "r9", "r10", "r11", "ap", "fp", "sp", "pc",
     "ps",
   };
 
-  if (regno < 0)
-    return (NULL);
-  if (regno >= (sizeof(register_names) / sizeof(*register_names)))
-    return (NULL);
-  return (register_names[regno]);
-}
+  if (regnum >= 0 && regnum < ARRAY_SIZE (register_names))
+    return register_names[regnum];
 
-static int
-vax_register_byte (int regno)
-{
-  return (regno * 4);
+  return NULL;
 }
 
-static int
-vax_register_raw_size (int regno)
-{
-  return (4);
-}
-
-static int
-vax_register_virtual_size (int regno)
-{
-  return (4);
-}
+/* Return the GDB type object for the "standard" data type of data in
+   register REGNUM. */
 
 static struct type *
-vax_register_virtual_type (int regno)
+vax_register_type (struct gdbarch *gdbarch, int regnum)
 {
-  return (builtin_type_int);
+  return builtin_type_int;
 }
 \f
 static void
@@ -273,13 +258,20 @@ vax_store_return_value (struct type *valtype, char *valbuf)
   deprecated_write_register_bytes (0, valbuf, TYPE_LENGTH (valtype));
 }
 \f
+
+/* Use the program counter to determine the contents and size of a
+   breakpoint instruction.  Return a pointer to a string of bytes that
+   encode a breakpoint instruction, store the length of the string in
+   *LEN and optionally adjust *PC to point to the correct memory
+   location for inserting the breakpoint.  */
+   
 static const unsigned char *
-vax_breakpoint_from_pc (CORE_ADDR *pcptr, int *lenptr)
+vax_breakpoint_from_pc (CORE_ADDR *pc, int *len)
 {
-  static const unsigned char vax_breakpoint[] = { 3 };
+  static unsigned char break_insn[] = { 3 };
 
-  *lenptr = sizeof(vax_breakpoint);
-  return (vax_breakpoint);
+  *len = sizeof (break_insn);
+  return break_insn;
 }
 \f
 /* Advance PC across any function entry prologue instructions
@@ -342,22 +334,13 @@ vax_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
 
   /* Register info */
   set_gdbarch_num_regs (gdbarch, VAX_NUM_REGS);
+  set_gdbarch_register_name (gdbarch, vax_register_name);
+  set_gdbarch_register_type (gdbarch, vax_register_type);
   set_gdbarch_sp_regnum (gdbarch, VAX_SP_REGNUM);
   set_gdbarch_deprecated_fp_regnum (gdbarch, VAX_FP_REGNUM);
   set_gdbarch_pc_regnum (gdbarch, VAX_PC_REGNUM);
   set_gdbarch_ps_regnum (gdbarch, VAX_PS_REGNUM);
 
-  set_gdbarch_register_name (gdbarch, vax_register_name);
-  set_gdbarch_deprecated_register_size (gdbarch, VAX_REGISTER_SIZE);
-  set_gdbarch_deprecated_register_bytes (gdbarch, VAX_REGISTER_BYTES);
-  set_gdbarch_deprecated_register_byte (gdbarch, vax_register_byte);
-  set_gdbarch_deprecated_register_raw_size (gdbarch, vax_register_raw_size);
-  set_gdbarch_deprecated_max_register_raw_size (gdbarch, VAX_MAX_REGISTER_RAW_SIZE);
-  set_gdbarch_deprecated_register_virtual_size (gdbarch, vax_register_virtual_size);
-  set_gdbarch_deprecated_max_register_virtual_size (gdbarch,
-                                         VAX_MAX_REGISTER_VIRTUAL_SIZE);
-  set_gdbarch_deprecated_register_virtual_type (gdbarch, vax_register_virtual_type);
-
   /* Frame and stack info */
   set_gdbarch_skip_prologue (gdbarch, vax_skip_prologue);
   set_gdbarch_deprecated_saved_pc_after_call (gdbarch, vax_saved_pc_after_call);
@@ -373,6 +356,7 @@ vax_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
 
   set_gdbarch_frame_args_skip (gdbarch, 4);
 
+  /* Stack grows downward.  */
   set_gdbarch_inner_than (gdbarch, core_addr_lessthan);
 
   /* Return value info */
index 1a19917..d27f1a8 100644 (file)
@@ -1,5 +1,6 @@
-/* Common target dependent code for GDB on VAX systems.
-   Copyright 2002, 2003 Free Software Foundation, Inc.
+/* Target-dependent code for the VAX.
+
+   Copyright 2002, 2003, 2004 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
 #ifndef VAX_TDEP_H
 #define VAX_TDEP_H
 
-/* Say how long (ordinary) registers are.  This is a piece of bogosity
-   used in push_word and a few other places;  DEPRECATED_REGISTER_RAW_SIZE is the
-   real way to know how big a register is.  */
-#define VAX_REGISTER_SIZE 4
+/* Register numbers of various important registers.  */
+
+enum vax_regnum
+{
+  VAX_AP_REGNUM = 12,          /* Argument pointer on user stack.  */
+  VAX_FP_REGNUM,               /* Address of executing stack frame.  */
+  VAX_SP_REGNUM,               /* Address of top of stack.  */
+  VAX_PC_REGNUM,               /* Program counter.  */
+  VAX_PS_REGNUM                        /* Processor status.  */
+};
 
 /* Number of machine registers.  */
 #define VAX_NUM_REGS 17
 
-/* Total amount of space needed to store our copies of the machine's
-   register state.  */
-#define VAX_REGISTER_BYTES (VAX_NUM_REGS * 4)
-
-/* Largest value DEPRECATED_REGISTER_RAW_SIZE can have.  */
-#define VAX_MAX_REGISTER_RAW_SIZE 4
-
-/* Largest value DEPRECATED_REGISTER_VIRTUAL_SIZE can have.  */
-#define VAX_MAX_REGISTER_VIRTUAL_SIZE 4
-
-/* Register numbers of various important registers.
-   Note that most of these values are "real" register numbers,
-   and correspond to the general registers of the machine,
-   and are "phony" register numbers which is too large
-   to be an actual register number as far as the user is concerned
-   but serves to get the desired value when passed to read_register.  */
-
-#define VAX_AP_REGNUM     12  /* argument pointer */
-#define VAX_FP_REGNUM     13  /* Contains address of executing stack frame */
-#define VAX_SP_REGNUM     14  /* Contains address of top of stack */
-#define VAX_PC_REGNUM     15  /* Contains program counter */
-#define VAX_PS_REGNUM     16  /* Contains processor status */
-
-#endif /* VAX_TDEP_H */
+#endif /* vax-tdep.h */