From: Andrew Cagney Date: Tue, 9 Apr 2002 22:14:39 +0000 (+0000) Subject: * frame.c (read_relative_register_raw_bytes_for_frame): Do not X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=96cb11df6d280f0bba0c181b500d66c853cd377e;p=binutils-gdb.git * 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. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 1e237d82004..713e43169e5 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,14 @@ +2002-04-09 Andrew Cagney + + * 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 * gdbserver/Makefile.in: Add stamp-h target. diff --git a/gdb/frame.c b/gdb/frame.c index ea59eba0888..8849f2f634c 100644 --- a/gdb/frame.c +++ b/gdb/frame.c @@ -1,6 +1,7 @@ /* 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. @@ -182,24 +183,12 @@ get_saved_register (char *raw_buffer, 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 read_relative_register_raw_bytes_for_frame (int regnum, char *myaddr, struct frame_info *frame) { 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, regnum, (enum lval_type *) NULL); diff --git a/gdb/parse.c b/gdb/parse.c index eae55865f28..1a1003bc4ad 100644 --- a/gdb/parse.c +++ b/gdb/parse.c @@ -104,15 +104,9 @@ struct funcall 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 - named. The mapping can be derived from three sources: - REGISTER_NAME; std_regs; or a target specific alias hook. */ + named. The mapping can be derived from two sources: REGISTER_NAME; + or builtin regs. */ int target_map_name_to_register (char *str, int len) @@ -127,13 +121,13 @@ target_map_name_to_register (char *str, int len) return i; } - /* Try standard aliases. */ - for (i = 0; i < num_std_regs; i++) - if (std_regs[i].name && len == strlen (std_regs[i].name) - && STREQN (str, std_regs[i].name, len)) - { - return std_regs[i].regnum; - } + /* Try builtin registers. */ + i = builtin_reg_map_name_to_regnum (str, len); + if (i >= 0) + { + gdb_assert (i >= NUM_REGS + NUM_PSEUDO_REGS); + return i; + } /* Try builtin registers. */ i = builtin_reg_map_name_to_regnum (str, len); @@ -1361,63 +1355,6 @@ build_parse (void) init_type (TYPE_CODE_INT, 1, 0, "", 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 @@ -1437,8 +1374,6 @@ _initialize_parse (void) 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 (&num_std_regs, sizeof (std_regs), NULL); - register_gdbarch_swap (&std_regs, sizeof (std_regs), NULL); register_gdbarch_swap (NULL, 0, build_parse); add_show_from_set ( diff --git a/gdb/parser-defs.h b/gdb/parser-defs.h index 66e929f6f3a..5b2e47b66e1 100644 --- a/gdb/parser-defs.h +++ b/gdb/parser-defs.h @@ -1,6 +1,8 @@ /* 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 State University of New York at Buffalo. @@ -26,15 +28,6 @@ #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 int expout_size; extern int expout_ptr; @@ -208,8 +201,8 @@ struct op_print }; /* The generic method for targets to specify how their registers are - named. The mapping can be derived from three sources: - REGISTER_NAME; std_regs; or a target specific alias hook. */ + named. The mapping can be derived from two sources: REGISTER_NAME; + and builtin regs. */ extern int target_map_name_to_register (char *, int);