diff options
author | Ulrich Weigand <uweigand@de.ibm.com> | 2007-04-28 16:47:00 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@de.ibm.com> | 2007-04-28 16:47:00 +0000 |
commit | 7a61a01c8945b93ece98a4f420ac188ea4f144bd (patch) | |
tree | 9ce512c296f970e15edd05e330c92acf9c5230d0 /gdb/rs6000-nat.c | |
parent | d7d4c8debeaced278c18126aa602c1ce62827f05 (diff) | |
download | gdb-7a61a01c8945b93ece98a4f420ac188ea4f144bd.zip gdb-7a61a01c8945b93ece98a4f420ac188ea4f144bd.tar.gz gdb-7a61a01c8945b93ece98a4f420ac188ea4f144bd.tar.bz2 |
* rs6000-aix-tdep.c: Include "regcache.h", "regset.h", and
"gdb_string.h".
(rs6000_aix32_reg_offsets, rs6000_aix64_reg_offsets): New variables.
(rs6000_aix_supply_regset, rs6000_aix_collect_regset): New functions.
(rs6000_aix32_regset, rs6000_aix64_regset): New variables.
(rs6000_aix_regset_from_core_section): New function.
(rs6000_aix_init_osabi): Register it.
(_initialize_rs6000_aix_tdep): Register GDB_OSABI_AIX osabi and
sniffer for bfd_arch_powerpc as well as bfd_arch_rs6000.
* rs6000-nat.c (CoreRegs): Do not define type.
(fetch_core_registers, rs6000_core_fns): Remove.
(_initialize_core_rs6000): Do not register it. Rename to ...
(_initialize_rs6000_nat): ... this.
* Makefile.in (rs6000-aix-tdep.o): Update dependencies.
Diffstat (limited to 'gdb/rs6000-nat.c')
-rw-r--r-- | gdb/rs6000-nat.c | 108 |
1 files changed, 1 insertions, 107 deletions
diff --git a/gdb/rs6000-nat.c b/gdb/rs6000-nat.c index 1281da2..dca0830 100644 --- a/gdb/rs6000-nat.c +++ b/gdb/rs6000-nat.c @@ -79,17 +79,6 @@ # define ARCH64() (register_size (current_gdbarch, 0) == 8) #endif -/* Union of 32-bit and 64-bit ".reg" core file sections. */ - -typedef union { -#ifdef ARCH3264 - struct __context64 r64; -#else - struct mstsave r64; -#endif - struct mstsave r32; -} CoreRegs; - /* Union of 32-bit and 64-bit versions of ld_info. */ typedef union { @@ -142,8 +131,6 @@ static int objfile_symbol_add (void *); static void vmap_symtab (struct vmap *); -static void fetch_core_registers (char *, unsigned int, int, CORE_ADDR); - static void exec_one_dummy_insn (void); extern void fixup_breakpoints (CORE_ADDR low, CORE_ADDR high, CORE_ADDR delta); @@ -624,87 +611,6 @@ exec_one_dummy_insn (void) write_pc (prev_pc); deprecated_remove_raw_breakpoint (bp); } - -/* Fetch registers from the register section in core bfd. */ - -static void -fetch_core_registers (char *core_reg_sect, unsigned core_reg_size, - int which, CORE_ADDR reg_addr) -{ - CoreRegs *regs; - int regi; - struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch); - - if (which != 0) - { - fprintf_unfiltered - (gdb_stderr, - "Gdb error: unknown parameter to fetch_core_registers().\n"); - return; - } - - regs = (CoreRegs *) core_reg_sect; - - /* Put the register values from the core file section in the regcache. */ - - if (ARCH64 ()) - { - for (regi = 0; regi < ppc_num_gprs; regi++) - regcache_raw_supply (current_regcache, tdep->ppc_gp0_regnum + regi, - (char *) ®s->r64.gpr[regi]); - - if (tdep->ppc_fp0_regnum >= 0) - for (regi = 0; regi < ppc_num_fprs; regi++) - regcache_raw_supply (current_regcache, tdep->ppc_fp0_regnum + regi, - (char *) ®s->r64.fpr[regi]); - - regcache_raw_supply (current_regcache, PC_REGNUM, - (char *) ®s->r64.iar); - regcache_raw_supply (current_regcache, tdep->ppc_ps_regnum, - (char *) ®s->r64.msr); - regcache_raw_supply (current_regcache, tdep->ppc_cr_regnum, - (char *) ®s->r64.cr); - regcache_raw_supply (current_regcache, tdep->ppc_lr_regnum, - (char *) ®s->r64.lr); - regcache_raw_supply (current_regcache, tdep->ppc_ctr_regnum, - (char *) ®s->r64.ctr); - regcache_raw_supply (current_regcache, tdep->ppc_xer_regnum, - (char *) ®s->r64.xer); - if (tdep->ppc_fpscr_regnum >= 0) - regcache_raw_supply (current_regcache, tdep->ppc_fpscr_regnum, - (char *) ®s->r64.fpscr); - } - else - { - for (regi = 0; regi < ppc_num_gprs; regi++) - regcache_raw_supply (current_regcache, tdep->ppc_gp0_regnum + regi, - (char *) ®s->r32.gpr[regi]); - - if (tdep->ppc_fp0_regnum >= 0) - for (regi = 0; regi < ppc_num_fprs; regi++) - regcache_raw_supply (current_regcache, tdep->ppc_fp0_regnum + regi, - (char *) ®s->r32.fpr[regi]); - - regcache_raw_supply (current_regcache, PC_REGNUM, - (char *) ®s->r32.iar); - regcache_raw_supply (current_regcache, tdep->ppc_ps_regnum, - (char *) ®s->r32.msr); - regcache_raw_supply (current_regcache, tdep->ppc_cr_regnum, - (char *) ®s->r32.cr); - regcache_raw_supply (current_regcache, tdep->ppc_lr_regnum, - (char *) ®s->r32.lr); - regcache_raw_supply (current_regcache, tdep->ppc_ctr_regnum, - (char *) ®s->r32.ctr); - regcache_raw_supply (current_regcache, tdep->ppc_xer_regnum, - (char *) ®s->r32.xer); - if (tdep->ppc_fpscr_regnum >= 0) - regcache_raw_supply (current_regcache, tdep->ppc_fpscr_regnum, - (char *) ®s->r32.fpscr); - if (tdep->ppc_mq_regnum >= 0) - regcache_raw_supply (current_regcache, tdep->ppc_mq_regnum, - (char *) ®s->r32.mq); - } -} /* Copy information about text and data sections from LDI to VP for a 64-bit @@ -1291,19 +1197,9 @@ find_toc_address (CORE_ADDR pc) error (_("Unable to find TOC entry for pc %s."), hex_string (pc)); } -/* Register that we are able to handle rs6000 core file formats. */ - -static struct core_fns rs6000_core_fns = -{ - bfd_target_xcoff_flavour, /* core_flavour */ - default_check_format, /* check_format */ - default_core_sniffer, /* core_sniffer */ - fetch_core_registers, /* core_read_registers */ - NULL /* next */ -}; void -_initialize_core_rs6000 (void) +_initialize_rs6000_nat (void) { struct target_ops *t; @@ -1322,6 +1218,4 @@ _initialize_core_rs6000 (void) /* Initialize hook in rs6000-tdep.c for determining the TOC address when calling functions in the inferior. */ rs6000_find_toc_address_hook = find_toc_address; - - deprecated_add_core_fns (&rs6000_core_fns); } |