* dwarf2loc.c (dwarf_expr_frame_base): Error out on missing
[deliverable/binutils-gdb.git] / gdb / i386-tdep.h
index d07d2c8e2d31cc67ebeff2394a746cbf8996314e..227ac66c2952271c9faaabd489ec74ca01fd379c 100644 (file)
@@ -1,13 +1,13 @@
 /* Target-dependent code for the i386.
 
-   Copyright (C) 2001, 2002, 2003, 2004, 2006, 2007
+   Copyright (C) 2001, 2002, 2003, 2004, 2006, 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,
@@ -16,9 +16,7 @@
    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 <http://www.gnu.org/licenses/>.  */
 
 #ifndef I386_TDEP_H
 #define I386_TDEP_H
@@ -40,7 +38,7 @@ struct regcache;
    - SSE control register
 
    The general purpose registers for the x86-64 architecture are quite
-   different from IA-32.  Therefore, the FP0_REGNUM target macro
+   different from IA-32.  Therefore, gdbarch_fp0_regnum
    determines the register number at which the FPU data registers
    start.  The number of FPU data and control registers is the same
    for both architectures.  The number of SSE registers however,
@@ -118,8 +116,8 @@ struct gdbarch_tdep
 
 /* Return non-zero if REGNUM matches the FP register and the FP
    register set is active.  */
-extern int i386_fp_regnum_p (int regnum);
-extern int i386_fpc_regnum_p (int regnum);
+extern int i386_fp_regnum_p (struct gdbarch *, int);
+extern int i386_fpc_regnum_p (struct gdbarch *, int);
 
 /* Register numbers of various important registers.  */
 
@@ -166,11 +164,15 @@ extern struct type *i386_sse_type (struct gdbarch *gdbarch);
 #define I386_SEL_UPL   0x0003  /* User Privilige Level. */
 #define I386_SEL_KPL   0x0000  /* Kernel Privilige Level. */
 
+/* The length of the longest i386 instruction (according to
+   include/asm-i386/kprobes.h in Linux 2.6.  */
+#define I386_MAX_INSN_LEN (16)
+
 /* Functions exported from i386-tdep.c.  */
 extern CORE_ADDR i386_pe_skip_trampoline_code (CORE_ADDR pc, char *name);
 
 /* Return the name of register REGNUM.  */
-extern char const *i386_register_name (int regnum);
+extern char const *i386_register_name (struct gdbarch * gdbarch, int regnum);
 
 /* Return non-zero if REGNUM is a member of the specified group.  */
 extern int i386_register_reggroup_p (struct gdbarch *gdbarch, int regnum,
@@ -197,6 +199,12 @@ extern const struct regset *
   i386_regset_from_core_section (struct gdbarch *gdbarch,
                                 const char *sect_name, size_t sect_size);
 
+
+extern void i386_displaced_step_fixup (struct gdbarch *gdbarch,
+                                      struct displaced_step_closure *closure,
+                                      CORE_ADDR from, CORE_ADDR to,
+                                      struct regcache *regs);
+
 /* Initialize a basic ELF architecture variant.  */
 extern void i386_elf_init_abi (struct gdbarch_info, struct gdbarch *);
 
This page took 0.02597 seconds and 4 git commands to generate.