2007-06-19 Markus Deuling <deuling@de.ibm.com>
[deliverable/binutils-gdb.git] / gdb / alpha-tdep.h
index ab6be39125b27516c2837cbdf332ffa549fd35a0..d68ed0b314d1be89560cb0e8f26249cfb2acbe99 100644 (file)
@@ -1,6 +1,6 @@
 /* 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
+   Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -22,6 +22,8 @@
 #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.  */
@@ -40,6 +42,7 @@
 
 #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 +57,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 +94,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 +109,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 */
This page took 0.024298 seconds and 4 git commands to generate.