* 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.
This commit is contained in:
Mark Kettenis 2004-04-12 16:49:35 +00:00
parent 296bc76f51
commit 5e6b39ffbc
3 changed files with 67 additions and 76 deletions

View 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,

View 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;
/* 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];
return NULL;
}
static int
vax_register_byte (int regno)
{
return (regno * 4);
}
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;
}
static void
@ -273,13 +258,20 @@ vax_store_return_value (struct type *valtype, char *valbuf)
deprecated_write_register_bytes (0, valbuf, TYPE_LENGTH (valtype));
}
static const unsigned char *
vax_breakpoint_from_pc (CORE_ADDR *pcptr, int *lenptr)
{
static const unsigned char vax_breakpoint[] = { 3 };
*lenptr = sizeof(vax_breakpoint);
return (vax_breakpoint);
/* 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 *pc, int *len)
{
static unsigned char break_insn[] = { 3 };
*len = sizeof (break_insn);
return break_insn;
}
/* 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 */

View 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.
@ -21,35 +22,18 @@
#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 */