mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-18 00:32:30 +08:00
* alpha-tdep.c (alpha_register_reggroup_p): New.
(alpha_gdbarch_init): Register it.
This commit is contained in:
@ -1,3 +1,8 @@
|
|||||||
|
2003-06-01 Richard Henderson <rth@redhat.com>
|
||||||
|
|
||||||
|
* alpha-tdep.c (alpha_register_reggroup_p): New.
|
||||||
|
(alpha_gdbarch_init): Register it.
|
||||||
|
|
||||||
2003-06-02 Andrew Cagney <cagney@redhat.com>
|
2003-06-02 Andrew Cagney <cagney@redhat.com>
|
||||||
|
|
||||||
* dwarfread.c: Eliminate "register"
|
* dwarfread.c: Eliminate "register"
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
Boston, MA 02111-1307, USA. */
|
Boston, MA 02111-1307, USA. */
|
||||||
|
|
||||||
#include "defs.h"
|
#include "defs.h"
|
||||||
|
#include "doublest.h"
|
||||||
#include "frame.h"
|
#include "frame.h"
|
||||||
#include "frame-unwind.h"
|
#include "frame-unwind.h"
|
||||||
#include "frame-base.h"
|
#include "frame-base.h"
|
||||||
@ -34,7 +35,7 @@
|
|||||||
#include "gdb_string.h"
|
#include "gdb_string.h"
|
||||||
#include "linespec.h"
|
#include "linespec.h"
|
||||||
#include "regcache.h"
|
#include "regcache.h"
|
||||||
#include "doublest.h"
|
#include "reggroups.h"
|
||||||
#include "arch-utils.h"
|
#include "arch-utils.h"
|
||||||
#include "osabi.h"
|
#include "osabi.h"
|
||||||
#include "block.h"
|
#include "block.h"
|
||||||
@ -92,6 +93,39 @@ alpha_register_virtual_type (int regno)
|
|||||||
? builtin_type_double : builtin_type_long);
|
? builtin_type_double : builtin_type_long);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Is REGNUM a member of REGGROUP? */
|
||||||
|
|
||||||
|
static int
|
||||||
|
alpha_register_reggroup_p (struct gdbarch *gdbarch, int regnum,
|
||||||
|
struct reggroup *group)
|
||||||
|
{
|
||||||
|
/* Filter out any registers eliminated, but whose regnum is
|
||||||
|
reserved for backward compatibility, e.g. the vfp. */
|
||||||
|
if (REGISTER_NAME (regnum) == NULL || *REGISTER_NAME (regnum) == '\0')
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
/* Since we implement no pseudo registers, save/restore is equal to all. */
|
||||||
|
if (group == all_reggroup
|
||||||
|
|| group == save_reggroup
|
||||||
|
|| group == restore_reggroup)
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
/* All other groups are non-overlapping. */
|
||||||
|
|
||||||
|
/* Since this is really a PALcode memory slot... */
|
||||||
|
if (regnum == ALPHA_UNIQUE_REGNUM)
|
||||||
|
return group == system_reggroup;
|
||||||
|
|
||||||
|
/* Force the FPCR to be considered part of the floating point state. */
|
||||||
|
if (regnum == ALPHA_FPCR_REGNUM)
|
||||||
|
return group == float_reggroup;
|
||||||
|
|
||||||
|
if (regnum >= ALPHA_FP0_REGNUM && regnum < ALPHA_FP0_REGNUM + 31)
|
||||||
|
return group == float_reggroup;
|
||||||
|
else
|
||||||
|
return group == general_reggroup;
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
alpha_register_byte (int regno)
|
alpha_register_byte (int regno)
|
||||||
{
|
{
|
||||||
@ -1260,6 +1294,8 @@ alpha_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
|||||||
alpha_register_convert_to_virtual);
|
alpha_register_convert_to_virtual);
|
||||||
set_gdbarch_register_convert_to_raw (gdbarch, alpha_register_convert_to_raw);
|
set_gdbarch_register_convert_to_raw (gdbarch, alpha_register_convert_to_raw);
|
||||||
|
|
||||||
|
set_gdbarch_register_reggroup_p (gdbarch, alpha_register_reggroup_p);
|
||||||
|
|
||||||
/* Prologue heuristics. */
|
/* Prologue heuristics. */
|
||||||
set_gdbarch_skip_prologue (gdbarch, alpha_skip_prologue);
|
set_gdbarch_skip_prologue (gdbarch, alpha_skip_prologue);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user