New flag OBJF_NOT_FILENAME
[deliverable/binutils-gdb.git] / gdb / i386-tdep.h
index 6851195c15c0aed918e59e007a2f97e81921b7e4..092744c8ba0ecec8b43c3a13f52e1f94ee5a7821 100644 (file)
@@ -1,7 +1,6 @@
 /* Target-dependent code for the i386.
 
-   Copyright (C) 2001, 2002, 2003, 2004, 2006, 2007, 2008, 2009, 2010, 2011
-   Free Software Foundation, Inc.
+   Copyright (C) 2001-2013 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -53,20 +52,6 @@ enum struct_return
   reg_struct_return            /* Return "short" structures in registers.  */
 };
 
-/* Register classes as defined in the AMD x86-64 psABI.  */
-
-enum amd64_reg_class
-{
-  AMD64_INTEGER,
-  AMD64_SSE,
-  AMD64_SSEUP,
-  AMD64_X87,
-  AMD64_X87UP,
-  AMD64_COMPLEX_X87,
-  AMD64_NO_CLASS,
-  AMD64_MEMORY
-};
-
 /* i386 architecture specific information.  */
 struct gdbarch_tdep
 {
@@ -76,35 +61,6 @@ struct gdbarch_tdep
   int gregset_num_regs;
   size_t sizeof_gregset;
 
-  /* The general-purpose registers used to pass integers when making
-     function calls.  This only applies to amd64, as all parameters
-     are passed through the stack on x86.  */
-  int call_dummy_num_integer_regs;
-  int *call_dummy_integer_regs;
-
-  /* Used on amd64 only.  Classify TYPE according to calling conventions,
-     and store the result in CLASS.  */
-  void (*classify) (struct type *type, enum amd64_reg_class class[2]);
-
-  /* Used on amd64 only.  Non-zero if the first few MEMORY arguments
-     should be passed by pointer.
-
-     More precisely, MEMORY arguments are passed through the stack.
-     But certain architectures require that their address be passed
-     by register as well, if there are still some integer registers
-     available for argument passing.  */
-  int memory_args_by_pointer;
-
-  /* Used on amd64 only.
-
-     If non-zero, then the callers of a function are expected to reserve
-     some space in the stack just before the area where the PC is saved
-     so that the callee may save the integer-parameter registers there.
-     The amount of space is dependent on the list of registers used for
-     integer parameter passing (see component call_dummy_num_integer_regs
-     above).  */
-  int integer_param_regs_saved_in_caller_frame;
-
   /* Floating-point registers.  */
   struct regset *fpregset;
   size_t sizeof_fpregset;
@@ -157,8 +113,8 @@ struct gdbarch_tdep
   int num_xmm_regs;
 
   /* Bits of the extended control register 0 (the XFEATURE_ENABLED_MASK
-     register), excluding the x87 bit, which are supported by this GDB.
-   */
+     register), excluding the x87 bit, which are supported by this GDB.  */
+
   uint64_t xcr0;
 
   /* Offset of XCR0 in XSAVE extended state.  */
@@ -310,18 +266,22 @@ extern int i386_ymm_regnum_p (struct gdbarch *gdbarch, int regnum);
 
 extern const char *i386_pseudo_register_name (struct gdbarch *gdbarch,
                                              int regnum);
+extern struct type *i386_pseudo_register_type (struct gdbarch *gdbarch,
+                                              int regnum);
+
+extern void i386_pseudo_register_read_into_value (struct gdbarch *gdbarch,
+                                                 struct regcache *regcache,
+                                                 int regnum,
+                                                 struct value *result);
 
-extern void i386_pseudo_register_read (struct gdbarch *gdbarch,
-                                      struct regcache *regcache,
-                                      int regnum, gdb_byte *buf);
 extern void i386_pseudo_register_write (struct gdbarch *gdbarch,
                                        struct regcache *regcache,
                                        int regnum, const gdb_byte *buf);
 
 /* Segment selectors.  */
 #define I386_SEL_RPL   0x0003  /* Requester's Privilege Level mask.  */
-#define I386_SEL_UPL   0x0003  /* User Privilige Level. */
-#define I386_SEL_KPL   0x0000  /* Kernel Privilige Level. */
+#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.  */
@@ -330,7 +290,8 @@ extern void i386_pseudo_register_write (struct gdbarch *gdbarch,
 /* Functions exported from i386-tdep.c.  */
 extern CORE_ADDR i386_pe_skip_trampoline_code (struct frame_info *frame,
                                               CORE_ADDR pc, char *name);
-extern CORE_ADDR i386_skip_main_prologue (struct gdbarch *gdbarch, CORE_ADDR pc);
+extern CORE_ADDR i386_skip_main_prologue (struct gdbarch *gdbarch,
+                                         CORE_ADDR pc);
 
 /* Return whether the THIS_FRAME corresponds to a sigtramp routine.  */
 extern int i386_sigtramp_p (struct frame_info *this_frame);
@@ -377,6 +338,7 @@ extern void i386_svr4_init_abi (struct gdbarch_info, struct gdbarch *);
 
 extern int i386_process_record (struct gdbarch *gdbarch,
                                 struct regcache *regcache, CORE_ADDR addr);
+
 \f
 
 /* Functions and variables exported from i386bsd-tdep.c.  */
@@ -392,4 +354,12 @@ extern int i386nbsd_sc_reg_offset[];
 extern int i386obsd_sc_reg_offset[];
 extern int i386bsd_sc_reg_offset[];
 
+/* SystemTap related functions.  */
+
+extern int i386_stap_is_single_operand (struct gdbarch *gdbarch,
+                                       const char *s);
+
+extern int i386_stap_parse_special_token (struct gdbarch *gdbarch,
+                                         struct stap_parse_info *p);
+
 #endif /* i386-tdep.h */
This page took 0.025511 seconds and 4 git commands to generate.