]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - gdb/ppc-tdep.h
Update Copyright year range in all files maintained by GDB.
[thirdparty/binutils-gdb.git] / gdb / ppc-tdep.h
index ce43e797c1b8267be5fd47428478fb762063e34a..e6a19b2e0be98c6868357590163c7e4f431bc0bb 100644 (file)
@@ -1,6 +1,6 @@
 /* Target-dependent code for GDB, the GNU debugger.
 
-   Copyright (C) 2000-2005, 2007-2012 Free Software Foundation, Inc.
+   Copyright (C) 2000-2014 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -28,13 +28,13 @@ struct type;
 
 /* From ppc-sysv-tdep.c ...  */
 enum return_value_convention ppc_sysv_abi_return_value (struct gdbarch *gdbarch,
-                                                       struct type *func_type,
+                                                       struct value *function,
                                                        struct type *valtype,
                                                        struct regcache *regcache,
                                                        gdb_byte *readbuf,
                                                        const gdb_byte *writebuf);
 enum return_value_convention ppc_sysv_abi_broken_return_value (struct gdbarch *gdbarch,
-                                                              struct type *func_type,
+                                                              struct value *function,
                                                               struct type *valtype,
                                                               struct regcache *regcache,
                                                               gdb_byte *readbuf,
@@ -54,7 +54,7 @@ CORE_ADDR ppc64_sysv_abi_push_dummy_call (struct gdbarch *gdbarch,
                                          int struct_return,
                                          CORE_ADDR struct_addr);
 enum return_value_convention ppc64_sysv_abi_return_value (struct gdbarch *gdbarch,
-                                                         struct type *func_type,
+                                                         struct value *function,
                                                          struct type *valtype,
                                                          struct regcache *regcache,
                                                          gdb_byte *readbuf,
@@ -291,6 +291,21 @@ enum {
   PPC_NUM_REGS
 };
 
+/* An instruction to match.  */
+
+struct ppc_insn_pattern
+{
+  unsigned int mask;            /* mask the insn with this...  */
+  unsigned int data;            /* ...and see if it matches this.  */
+  int optional;                 /* If non-zero, this insn may be absent.  */
+};
+
+extern int ppc_insns_match_pattern (struct frame_info *frame, CORE_ADDR pc,
+                                   struct ppc_insn_pattern *pattern,
+                                   unsigned int *insns);
+extern CORE_ADDR ppc_insn_d_field (unsigned int insn);
+
+extern CORE_ADDR ppc_insn_ds_field (unsigned int insn);
 
 /* Instruction size.  */
 #define PPC_INSN_SIZE 4