diff options
author | Andreas Tobler <andreast@sourceware.org> | 2013-02-01 20:54:18 +0000 |
---|---|---|
committer | Andreas Tobler <andreast@sourceware.org> | 2013-02-01 20:54:18 +0000 |
commit | d78489bf604bd655936b653e8aacaef50885a692 (patch) | |
tree | e70a81185ff07f72f15cca46532b129b26ef003e /gdb/ppc-tdep.h | |
parent | 8db60374ebbe2b436929e27ce80b2dddb2c4eb13 (diff) | |
download | gdb-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.h | 15 |
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 |