mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-10-16 12:24:19 +08:00
* frame.c (read_relative_register_raw_bytes_for_frame): Do not
override FP_REGNUM with frame->fp. Update copyright. * parse.c (num_std_regs, std_regs): Delete. (target_map_name_to_register): Do not search std_regs. Update function description. * parser-defs.h (num_std_regs, std_regs, struct std_regs): Delete declarations. Update copyright. Fix PR gdb/251.
This commit is contained in:
@ -1,3 +1,14 @@
|
|||||||
|
2002-04-09 Andrew Cagney <ac131313@redhat.com>
|
||||||
|
|
||||||
|
* frame.c (read_relative_register_raw_bytes_for_frame): Do not
|
||||||
|
override FP_REGNUM with frame->fp. Update copyright.
|
||||||
|
* parse.c (num_std_regs, std_regs): Delete.
|
||||||
|
(target_map_name_to_register): Do not search std_regs. Update
|
||||||
|
function description.
|
||||||
|
* parser-defs.h (num_std_regs, std_regs, struct std_regs): Delete
|
||||||
|
declarations. Update copyright.
|
||||||
|
Fix PR gdb/251.
|
||||||
|
|
||||||
2002-04-09 Daniel Jacobowitz <drow@mvista.com>
|
2002-04-09 Daniel Jacobowitz <drow@mvista.com>
|
||||||
|
|
||||||
* gdbserver/Makefile.in: Add stamp-h target.
|
* gdbserver/Makefile.in: Add stamp-h target.
|
||||||
|
17
gdb/frame.c
17
gdb/frame.c
@ -1,6 +1,7 @@
|
|||||||
/* Cache and manage the values of registers for GDB, the GNU debugger.
|
/* Cache and manage the values of registers for GDB, the GNU debugger.
|
||||||
Copyright 1986, 1987, 1989, 1991, 1994, 1995, 1996, 1998, 2000, 2001
|
|
||||||
Free Software Foundation, Inc.
|
Copyright 1986, 1987, 1989, 1991, 1994, 1995, 1996, 1998, 2000,
|
||||||
|
2001, 2002 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This file is part of GDB.
|
This file is part of GDB.
|
||||||
|
|
||||||
@ -182,24 +183,12 @@ get_saved_register (char *raw_buffer,
|
|||||||
|
|
||||||
Returns 1 if could not be read, 0 if could. */
|
Returns 1 if could not be read, 0 if could. */
|
||||||
|
|
||||||
/* FIXME: This function increases the confusion between FP_REGNUM
|
|
||||||
and the virtual/pseudo-frame pointer. */
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
read_relative_register_raw_bytes_for_frame (int regnum,
|
read_relative_register_raw_bytes_for_frame (int regnum,
|
||||||
char *myaddr,
|
char *myaddr,
|
||||||
struct frame_info *frame)
|
struct frame_info *frame)
|
||||||
{
|
{
|
||||||
int optim;
|
int optim;
|
||||||
if (regnum == FP_REGNUM && frame)
|
|
||||||
{
|
|
||||||
/* Put it back in target format. */
|
|
||||||
store_address (myaddr, REGISTER_RAW_SIZE (FP_REGNUM),
|
|
||||||
(LONGEST) FRAME_FP (frame));
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
get_saved_register (myaddr, &optim, (CORE_ADDR *) NULL, frame,
|
get_saved_register (myaddr, &optim, (CORE_ADDR *) NULL, frame,
|
||||||
regnum, (enum lval_type *) NULL);
|
regnum, (enum lval_type *) NULL);
|
||||||
|
|
||||||
|
83
gdb/parse.c
83
gdb/parse.c
@ -104,15 +104,9 @@ struct funcall
|
|||||||
|
|
||||||
static struct funcall *funcall_chain;
|
static struct funcall *funcall_chain;
|
||||||
|
|
||||||
/* Assign machine-independent names to certain registers
|
|
||||||
(unless overridden by the REGISTER_NAMES table) */
|
|
||||||
|
|
||||||
unsigned num_std_regs = 0;
|
|
||||||
struct std_regs *std_regs;
|
|
||||||
|
|
||||||
/* The generic method for targets to specify how their registers are
|
/* The generic method for targets to specify how their registers are
|
||||||
named. The mapping can be derived from three sources:
|
named. The mapping can be derived from two sources: REGISTER_NAME;
|
||||||
REGISTER_NAME; std_regs; or a target specific alias hook. */
|
or builtin regs. */
|
||||||
|
|
||||||
int
|
int
|
||||||
target_map_name_to_register (char *str, int len)
|
target_map_name_to_register (char *str, int len)
|
||||||
@ -127,13 +121,13 @@ target_map_name_to_register (char *str, int len)
|
|||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Try standard aliases. */
|
/* Try builtin registers. */
|
||||||
for (i = 0; i < num_std_regs; i++)
|
i = builtin_reg_map_name_to_regnum (str, len);
|
||||||
if (std_regs[i].name && len == strlen (std_regs[i].name)
|
if (i >= 0)
|
||||||
&& STREQN (str, std_regs[i].name, len))
|
{
|
||||||
{
|
gdb_assert (i >= NUM_REGS + NUM_PSEUDO_REGS);
|
||||||
return std_regs[i].regnum;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Try builtin registers. */
|
/* Try builtin registers. */
|
||||||
i = builtin_reg_map_name_to_regnum (str, len);
|
i = builtin_reg_map_name_to_regnum (str, len);
|
||||||
@ -1361,63 +1355,6 @@ build_parse (void)
|
|||||||
init_type (TYPE_CODE_INT, 1, 0,
|
init_type (TYPE_CODE_INT, 1, 0,
|
||||||
"<variable (not text or data), no debug info>",
|
"<variable (not text or data), no debug info>",
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
/* create the std_regs table */
|
|
||||||
|
|
||||||
num_std_regs = 0;
|
|
||||||
#ifdef PC_REGNUM
|
|
||||||
if (PC_REGNUM >= 0)
|
|
||||||
num_std_regs++;
|
|
||||||
#endif
|
|
||||||
#ifdef FP_REGNUM
|
|
||||||
if (FP_REGNUM >= 0)
|
|
||||||
num_std_regs++;
|
|
||||||
#endif
|
|
||||||
#ifdef SP_REGNUM
|
|
||||||
if (SP_REGNUM >= 0)
|
|
||||||
num_std_regs++;
|
|
||||||
#endif
|
|
||||||
#ifdef PS_REGNUM
|
|
||||||
if (PS_REGNUM >= 0)
|
|
||||||
num_std_regs++;
|
|
||||||
#endif
|
|
||||||
/* create an empty table */
|
|
||||||
std_regs = xmalloc ((num_std_regs + 1) * sizeof *std_regs);
|
|
||||||
i = 0;
|
|
||||||
/* fill it in */
|
|
||||||
#ifdef PC_REGNUM
|
|
||||||
if (PC_REGNUM >= 0)
|
|
||||||
{
|
|
||||||
std_regs[i].name = "pc";
|
|
||||||
std_regs[i].regnum = PC_REGNUM;
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#ifdef FP_REGNUM
|
|
||||||
if (FP_REGNUM >= 0)
|
|
||||||
{
|
|
||||||
std_regs[i].name = "fp";
|
|
||||||
std_regs[i].regnum = FP_REGNUM;
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#ifdef SP_REGNUM
|
|
||||||
if (SP_REGNUM >= 0)
|
|
||||||
{
|
|
||||||
std_regs[i].name = "sp";
|
|
||||||
std_regs[i].regnum = SP_REGNUM;
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#ifdef PS_REGNUM
|
|
||||||
if (PS_REGNUM >= 0)
|
|
||||||
{
|
|
||||||
std_regs[i].name = "ps";
|
|
||||||
std_regs[i].regnum = PS_REGNUM;
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
memset (&std_regs[i], 0, sizeof (std_regs[i]));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -1437,8 +1374,6 @@ _initialize_parse (void)
|
|||||||
register_gdbarch_swap (&msym_data_symbol_type, sizeof (msym_data_symbol_type), NULL);
|
register_gdbarch_swap (&msym_data_symbol_type, sizeof (msym_data_symbol_type), NULL);
|
||||||
register_gdbarch_swap (&msym_unknown_symbol_type, sizeof (msym_unknown_symbol_type), NULL);
|
register_gdbarch_swap (&msym_unknown_symbol_type, sizeof (msym_unknown_symbol_type), NULL);
|
||||||
|
|
||||||
register_gdbarch_swap (&num_std_regs, sizeof (std_regs), NULL);
|
|
||||||
register_gdbarch_swap (&std_regs, sizeof (std_regs), NULL);
|
|
||||||
register_gdbarch_swap (NULL, 0, build_parse);
|
register_gdbarch_swap (NULL, 0, build_parse);
|
||||||
|
|
||||||
add_show_from_set (
|
add_show_from_set (
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
/* Parser definitions for GDB.
|
/* Parser definitions for GDB.
|
||||||
Copyright 1986, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
|
|
||||||
1998, 1999, 2000 Free Software Foundation, Inc.
|
Copyright 1986, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
|
||||||
|
1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
|
||||||
|
|
||||||
Modified from expread.y by the Department of Computer Science at the
|
Modified from expread.y by the Department of Computer Science at the
|
||||||
State University of New York at Buffalo.
|
State University of New York at Buffalo.
|
||||||
|
|
||||||
@ -26,15 +28,6 @@
|
|||||||
|
|
||||||
#include "doublest.h"
|
#include "doublest.h"
|
||||||
|
|
||||||
struct std_regs
|
|
||||||
{
|
|
||||||
char *name;
|
|
||||||
int regnum;
|
|
||||||
};
|
|
||||||
|
|
||||||
extern struct std_regs *std_regs;
|
|
||||||
extern unsigned num_std_regs;
|
|
||||||
|
|
||||||
extern struct expression *expout;
|
extern struct expression *expout;
|
||||||
extern int expout_size;
|
extern int expout_size;
|
||||||
extern int expout_ptr;
|
extern int expout_ptr;
|
||||||
@ -208,8 +201,8 @@ struct op_print
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* The generic method for targets to specify how their registers are
|
/* The generic method for targets to specify how their registers are
|
||||||
named. The mapping can be derived from three sources:
|
named. The mapping can be derived from two sources: REGISTER_NAME;
|
||||||
REGISTER_NAME; std_regs; or a target specific alias hook. */
|
and builtin regs. */
|
||||||
|
|
||||||
extern int target_map_name_to_register (char *, int);
|
extern int target_map_name_to_register (char *, int);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user