diff options
author | Ulrich Weigand <uweigand@de.ibm.com> | 2007-02-27 23:04:28 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@de.ibm.com> | 2007-02-27 23:04:28 +0000 |
commit | 6f7f3f0da4e5202ebe8722ea0464ca35f937b206 (patch) | |
tree | af7d7d4046b472dd60f92f35064e67a222b85fab /gdb/rs6000-tdep.c | |
parent | 63050a44a0f223c682dc6310d2ab2df7fb356dd3 (diff) | |
download | gdb-6f7f3f0da4e5202ebe8722ea0464ca35f937b206.zip gdb-6f7f3f0da4e5202ebe8722ea0464ca35f937b206.tar.gz gdb-6f7f3f0da4e5202ebe8722ea0464ca35f937b206.tar.bz2 |
* config/powerpc/linux.mt (DEPRECATED_TM_FILE): Set to tm-ppc-eabi.h.
* config/powerpc/tm-linux.h: Delete file.
* config/powerpc/tm-ppc-eabi.h: Do not include "rs6000/tm-rs6000.h".
(PROCESS_LINENUMBER_HOOK): Do not undefine.
(TEXT_SEGMENT_BASE): Do not redefine.
* config/rs6000/nm-rs6000.h (CHILD_SPECIAL_WAITSTATUS): Move here
from config/rs6000/tm-rs6000.h.
(TARGET_CREATE_INFERIOR_HOOK, rs6000_create_inferior): Likewise.
* config/rs6000/tm-rs6000.h (struct frame_info): Remove declaration.
(TEXT_SEGMENT_BASE): Remove.
(IN_SOLIB_RETURN_TRAMPOLINE): Remove.
(rs6000_in_solib_return_trampoline): Remove.
(SKIP_TRAMPOLINE_CODE): Remove.
(rs6000_skip_trampoline_code): Remove.
(CHILD_SPECIAL_WAITSTATUS): Move to config/rs6000/nm-rs6000.h.
(TARGET_CREATE_INFERIOR_HOOK, rs6000_create_inferior): Likewise.
(FP0_REGNUM): Remove.
(rs6000_find_toc_address_hook): Move to rs6000-tdep.h.
(rs6000_set_host_arch_hook): Remove.
* Makefile.in (rs6000-nat.o): Add dependency on $(rs6000_tdep_h).
(rs6000-aix-tdep.o): Add dependency on $(ppc_tdep_h).
* ppc-tdep.h (struct gdbarch_tdep): Add field text_segment_base.
* rs6000-aix-tdep.c: Include "ppc-tdep.h".
(rs6000_aix_init_osabi): Set text_segment_base tdep field.
* rs6000-nat.c: Include "rs6000-tdep.h".
(exec_one_dummy_insn): Replace TEXT_SEGMENT_BASE by tdep field.
(set_host_arch): Rename to ...
(rs6000_create_inferior): ... this. Make public.
(_initialize_core_rs6000): Do not set rs6000_set_host_arch_hook.
* rs6000-tdep.c (rs6000_set_host_arch_hook): Remove.
(rs6000_create_inferior): Remove.
(branch_dest): Replace TEXT_SEGMENT_BASE by tdep field.
(rs6000_gdbarch_init): Call set_gdbarch_fp0_regnum,
set_gdbarch_in_solib_return_trampoline, and
set_gdbarch_skip_trampoline_code.
* rs6000-tdep.h (rs6000_find_toc_address_hook): Move here
from config/rs6000/tm-rs6000.h.
Diffstat (limited to 'gdb/rs6000-tdep.c')
-rw-r--r-- | gdb/rs6000-tdep.c | 25 |
1 files changed, 9 insertions, 16 deletions
diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c index 6e35887..25fa550 100644 --- a/gdb/rs6000-tdep.c +++ b/gdb/rs6000-tdep.c @@ -115,11 +115,6 @@ struct reg CORE_ADDR (*rs6000_find_toc_address_hook) (CORE_ADDR) = NULL; -/* Hook to set the current architecture when starting a child process. - rs6000-nat.c sets this. */ - -void (*rs6000_set_host_arch_hook) (int) = NULL; - /* Static function prototypes */ static CORE_ADDR branch_dest (int opcode, int instr, CORE_ADDR pc, @@ -655,7 +650,7 @@ branch_dest (int opcode, int instr, CORE_ADDR pc, CORE_ADDR safety) something like 0x3c90. The current frame is a signal handler caller frame, upon completion of the sigreturn system call execution will return to the saved PC in the frame. */ - if (dest < TEXT_SEGMENT_BASE) + if (dest < gdbarch_tdep (current_gdbarch)->text_segment_base) { struct frame_info *fi; @@ -673,7 +668,7 @@ branch_dest (int opcode, int instr, CORE_ADDR pc, CORE_ADDR safety) /* If we are about to execute a system call, dest is something like 0x22fc or 0x3b00. Upon completion the system call will return to the address in the link register. */ - if (dest < TEXT_SEGMENT_BASE) + if (dest < gdbarch_tdep (current_gdbarch)->text_segment_base) dest = read_register (gdbarch_tdep (current_gdbarch)->ppc_lr_regnum) & ~3; } else @@ -683,7 +678,7 @@ branch_dest (int opcode, int instr, CORE_ADDR pc, CORE_ADDR safety) default: return -1; } - return (dest < TEXT_SEGMENT_BASE) ? safety : dest; + return (dest < gdbarch_tdep (current_gdbarch)->text_segment_base) ? safety : dest; } @@ -2342,14 +2337,6 @@ rs6000_dwarf2_reg_to_regnum (int num) } } -/* Hook called when a new child process is started. */ - -void -rs6000_create_inferior (int pid) -{ - if (rs6000_set_host_arch_hook) - rs6000_set_host_arch_hook (pid); -} /* Support for CONVERT_FROM_FUNC_PTR_ADDR (ARCH, ADDR, TARG). @@ -3332,6 +3319,7 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_pc_regnum (gdbarch, 64); set_gdbarch_sp_regnum (gdbarch, 1); set_gdbarch_deprecated_fp_regnum (gdbarch, 1); + set_gdbarch_fp0_regnum (gdbarch, 32); set_gdbarch_register_sim_regno (gdbarch, rs6000_register_sim_regno); if (sysv_abi && wordsize == 8) set_gdbarch_return_value (gdbarch, ppc64_sysv_abi_return_value); @@ -3478,6 +3466,11 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) /* Helpers for function argument information. */ set_gdbarch_fetch_pointer_argument (gdbarch, rs6000_fetch_pointer_argument); + /* Trampoline. */ + set_gdbarch_in_solib_return_trampoline + (gdbarch, rs6000_in_solib_return_trampoline); + set_gdbarch_skip_trampoline_code (gdbarch, rs6000_skip_trampoline_code); + /* Hook in ABI-specific overrides, if they have been registered. */ gdbarch_init_osabi (info, gdbarch); |