X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fppc-tdep.h;h=4a1cb0f399304d8a53e26ed3650cfc2093113376;hb=8901d1936e4e691f0b3b976f5626ac5a8f27aa7f;hp=7ab639d7e3f4cc7911ae31378510556f66cad14a;hpb=6a3a010ba62de90c4fb166550a6bcff4782542db;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/ppc-tdep.h b/gdb/ppc-tdep.h index 7ab639d7e3..4a1cb0f399 100644 --- a/gdb/ppc-tdep.h +++ b/gdb/ppc-tdep.h @@ -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-2016 Free Software Foundation, Inc. This file is part of GDB. @@ -182,6 +182,15 @@ extern void ppc_collect_vsxregset (const struct regset *regset, /* Private data that this module attaches to struct gdbarch. */ +/* ELF ABI version used by the inferior. */ +enum powerpc_elf_abi +{ + POWERPC_ELF_AUTO, + POWERPC_ELF_V1, + POWERPC_ELF_V2, + POWERPC_ELF_LAST +}; + /* Vector ABI used by the inferior. */ enum powerpc_vector_abi { @@ -197,6 +206,8 @@ struct gdbarch_tdep int wordsize; /* Size in bytes of fixed-point word. */ int soft_float; /* Avoid FP registers for arguments? */ + enum powerpc_elf_abi elf_abi; /* ELF ABI version. */ + /* How to pass vector arguments. Never set to AUTO or LAST. */ enum powerpc_vector_abi vector_abi; @@ -248,6 +259,8 @@ struct gdbarch_tdep /* ISA-specific types. */ struct type *ppc_builtin_type_vec64; struct type *ppc_builtin_type_vec128; + + int (*ppc_syscall_record) (struct regcache *regcache); }; @@ -291,6 +304,24 @@ 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); + +extern int ppc_process_record (struct gdbarch *gdbarch, + struct regcache *regcache, CORE_ADDR addr); /* Instruction size. */ #define PPC_INSN_SIZE 4