aboutsummaryrefslogtreecommitdiff
path: root/gdb/ppc-tdep.h
diff options
context:
space:
mode:
authorAndreas Tobler <andreast@sourceware.org>2013-02-01 20:54:18 +0000
committerAndreas Tobler <andreast@sourceware.org>2013-02-01 20:54:18 +0000
commitd78489bf604bd655936b653e8aacaef50885a692 (patch)
treee70a81185ff07f72f15cca46532b129b26ef003e /gdb/ppc-tdep.h
parent8db60374ebbe2b436929e27ce80b2dddb2c4eb13 (diff)
downloadgdb-d78489bf604bd655936b653e8aacaef50885a692.zip
gdb-d78489bf604bd655936b653e8aacaef50885a692.tar.gz
gdb-d78489bf604bd655936b653e8aacaef50885a692.tar.bz2
2013-02-01 Andreas Tobler <andreast@fgznet.ch>
* Makefile.in (ALL_TARGET_OBS): Add ppc64-tdep.o. (HFILES_NO_SRCDIR): Add ppc64-tdep.h. (ALLDEPFILES): Add ppc64-tdep.c. * configure.tgt (powerpc-*-linux* | powerpc64-*-linux*): Add ppc64-tdep.o to gdb_target_obs. * ppc64-tdep.h: New file. * ppc64-tdep.c: New file. (insn_d, insn_ds, insn_xfx, ppc64_desc_entry_point): Move from ppc-linux-tdep.c to here. (PPC64_STANDARD_LINKAGE1_LEN, PPC64_STANDARD_LINKAGE2_LEN) (PPC64_STANDARD_LINKAGE2_LEN): Likewise and use ARRAY_SIZE macro. (ppc64_standard_linkage1_target, ppc64_standard_linkage2_target) (ppc64_standard_linkage3_target, ppc64_skip_trampoline_code): Move from ppc-linux-tdep.c to here. (ppc64_convert_from_func_ptr_addr): Rename from ppc64_linux_convert_from_func_ptr_addr to ppc64_convert_from_func_ptr_addr and move from ppc-linux-tdep.c to here. * rs6000-tdep.c: (read_insn): Move from ppc-linux-tdep.c to here. (insns_match_pattern, insn_d_field, insn_ds_field): Move from ppc-linux-tdep.c to here and rename them with the ppc_ prefix. * ppc-linux-tdep.c: Include ppc64-tdep.h. Removed above functions. (ppc_linux_init_abi): Adjust.
Diffstat (limited to 'gdb/ppc-tdep.h')
-rw-r--r--gdb/ppc-tdep.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/gdb/ppc-tdep.h b/gdb/ppc-tdep.h
index 9be9666..decbcf4 100644
--- a/gdb/ppc-tdep.h
+++ b/gdb/ppc-tdep.h
@@ -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 (CORE_ADDR pc,
+ struct ppc_insn_pattern *pattern,
+ unsigned int *insn);
+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