mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-09 04:21:49 +08:00
* 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:
parent
296bc76f51
commit
5e6b39ffbc
@ -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,
|
||||
|
@ -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 */
|
||||
|
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user