X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Falpha-tdep.h;h=805271b5e5237f023af0f8325403a0947817f40c;hb=07e059b5a9cbdeab8bf2980e07e79f892a2da854;hp=ab6be39125b27516c2837cbdf332ffa549fd35a0;hpb=01f0fe5e0450edf168c1f612feb93cf588e4e7ea;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/alpha-tdep.h b/gdb/alpha-tdep.h index ab6be39125..805271b5e5 100644 --- a/gdb/alpha-tdep.h +++ b/gdb/alpha-tdep.h @@ -1,12 +1,12 @@ /* Common target dependent code for GDB on Alpha systems. - Copyright (C) 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2002, 2003 Free - Software Foundation, Inc. + Copyright (C) 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2002, 2003, 2007, + 2008 Free Software Foundation, Inc. This file is part of GDB. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or + the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -15,13 +15,13 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ #ifndef ALPHA_TDEP_H #define ALPHA_TDEP_H +struct regcache; + /* Say how long (ordinary) registers are. This is a piece of bogosity used in push_word and a few other places; register_size() is the real way to know how big a register is. */ @@ -30,16 +30,13 @@ /* Number of machine registers. */ #define ALPHA_NUM_REGS 67 -/* Total amount of space needed to store our copies of the machine's - register state. */ -#define ALPHA_REGISTER_BYTES (ALPHA_NUM_REGS * 8) - /* 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. */ #define ALPHA_V0_REGNUM 0 /* Function integer return value */ #define ALPHA_T7_REGNUM 8 /* Return address register for OSF/1 __add* */ +#define ALPHA_S0_REGNUM 9 /* First saved register */ #define ALPHA_GCC_FP_REGNUM 15 /* Used by gcc as frame register */ #define ALPHA_A0_REGNUM 16 /* Loc of first arg during a subr call */ #define ALPHA_T9_REGNUM 23 /* Return address register for OSF/1 __div* */ @@ -54,6 +51,9 @@ #define ALPHA_PC_REGNUM 64 /* Contains program counter */ #define ALPHA_UNIQUE_REGNUM 66 /* PAL_rduniq value */ +/* Instruction size. */ +#define ALPHA_INSN_SIZE 4 + /* The alpha has two different virtual pointers for arguments and locals. The virtual argument pointer is pointing to the bottom of the argument @@ -88,6 +88,9 @@ struct gdbarch_tdep sigtramp unwinders. */ int (*pc_in_sigtramp) (CORE_ADDR pc, char *name); + /* If TYPE will be returned in memory, return true. */ + int (*return_in_memory) (struct type *type); + /* Offset of registers in `struct sigcontext'. */ int sc_pc_offset; int sc_regs_offset; @@ -100,16 +103,19 @@ struct gdbarch_tdep }; extern unsigned int alpha_read_insn (CORE_ADDR pc); -extern void alpha_software_single_step (enum target_signal, int); +extern int alpha_software_single_step (struct frame_info *frame); extern CORE_ADDR alpha_after_prologue (CORE_ADDR pc); extern void alpha_mdebug_init_abi (struct gdbarch_info, struct gdbarch *); extern void alpha_dwarf2_init_abi (struct gdbarch_info, struct gdbarch *); -extern void alpha_supply_int_regs (int, const void *, const void *, - const void *); -extern void alpha_fill_int_regs (int, void *, void *, void *); -extern void alpha_supply_fp_regs (int, const void *, const void *); -extern void alpha_fill_fp_regs (int, void *, void *); +extern void alpha_supply_int_regs (struct regcache *, int, const void *, + const void *, const void *); +extern void alpha_fill_int_regs (const struct regcache *, int, + void *, void *, void *); +extern void alpha_supply_fp_regs (struct regcache *, int, + const void *, const void *); +extern void alpha_fill_fp_regs (const struct regcache *, + int, void *, void *); #endif /* ALPHA_TDEP_H */