binutils-gdb/gdb/rs6000-tdep.h

27 lines
1.0 KiB
C
Raw Normal View History

/* Copyright (C) 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
Free Software Foundation, Inc.
This file is part of GDB.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
* rs6000-tdep.c: Do not include "rs6000-tdep.h". (rs6000_find_toc_address_hook): Move to rs6000-aix-tdep.c. (SIG_FRAME_PC_OFFSET): Likewise. (SIG_FRAME_LR_OFFSET): Likewise. (SIG_FRAME_FP_OFFSET): Likewise. (rs6000_push_dummy_call): Likewise. (rs6000_return_value): Likewise. (rs6000_convert_from_func_ptr_addr): Likewise. (branch_dest, rs6000_software_single_step): Likewise. (deal_with_atomic_sequence): Rename to ... (ppc_deal_with_atomic_sequence): ... this. Adapt all callers. Do not call branch_dest; inline required parts of that function. (rs6000_skip_trampoline_code): Replace DEPRECATED_SYMBOL_NAME with SYMBOL_LINKAGE_NAME. (struct reg, regsize): Delete. (read_memory_addr): Delete; inline into callers. (rs6000_skip_prologue): Move after skip_prologue. (skip_prologue): Remove prototype. (rs6000_gdbarch_init): Remove sysv_abi variable; perform all initialization as if this variable were true. Do not install ppc64_sysv_abi_adjust_breakpoint_address. * rs6000-aix-tdep.c: Include "gdb_assert.h", "gdbtypes.h", "gdbcore.h", "target.h", "value.h", "infcall.h", "objfiles.h", and "breakpoint.h". (rs6000_find_toc_address_hook): Move here from rs6000-tdep.c. (SIG_FRAME_PC_OFFSET): Likewise. (SIG_FRAME_LR_OFFSET): Likewise. (SIG_FRAME_FP_OFFSET): Likewise. (rs6000_push_dummy_call): Likewise. (rs6000_return_value): Likewise. (rs6000_convert_from_func_ptr_addr): Likewise. (branch_dest, rs6000_software_single_step): Likewise. Replace tdep->text_segment_base by AIX_TEXT_SEGMENT_BASE. (rs6000_aix_init_osabi): Install rs6000_push_dummy_call, rs6000_return_value, and rs6000_convert_from_func_ptr_addr. Call set_gdbarch_long_double_bit and set_gdbarch_frame_red_zone_size. Set tdep->lr_frame_offset. Do not set tdep->text_segment_base. * rs6000-tdep.h (rs6000_software_single_step): Remove prototype. (AIX_TEXT_SEGMENT_BASE): New macro. * rs6000-nat.c (exec_one_dummy_insn): Replace tdep->text_segment_base by AIX_TEXT_SEGMENT_BASE. * ppc-tdep.h (ppc_deal_with_atomic_sequence): Add prototype. (struct gdbarch_tdep): Remove text_segment_base member. * ppc-linux-tdep.c (ppc_linux_init_abi): On 64-bit, install ppc64_sysv_abi_adjust_breakpoint_address. * Makefile.in (rs6000-tdep.o): Update dependencies. (rs6000-aix-tdep.o): Likewise.
2008-05-04 07:50:43 +08:00
/* Hook in rs6000-aix-tdep.c for determining the TOC address when
* 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.
2007-02-28 07:04:28 +08:00
calling functions in the inferior. */
extern CORE_ADDR (*rs6000_find_toc_address_hook) (CORE_ADDR);
* rs6000-tdep.c: Do not include "rs6000-tdep.h". (rs6000_find_toc_address_hook): Move to rs6000-aix-tdep.c. (SIG_FRAME_PC_OFFSET): Likewise. (SIG_FRAME_LR_OFFSET): Likewise. (SIG_FRAME_FP_OFFSET): Likewise. (rs6000_push_dummy_call): Likewise. (rs6000_return_value): Likewise. (rs6000_convert_from_func_ptr_addr): Likewise. (branch_dest, rs6000_software_single_step): Likewise. (deal_with_atomic_sequence): Rename to ... (ppc_deal_with_atomic_sequence): ... this. Adapt all callers. Do not call branch_dest; inline required parts of that function. (rs6000_skip_trampoline_code): Replace DEPRECATED_SYMBOL_NAME with SYMBOL_LINKAGE_NAME. (struct reg, regsize): Delete. (read_memory_addr): Delete; inline into callers. (rs6000_skip_prologue): Move after skip_prologue. (skip_prologue): Remove prototype. (rs6000_gdbarch_init): Remove sysv_abi variable; perform all initialization as if this variable were true. Do not install ppc64_sysv_abi_adjust_breakpoint_address. * rs6000-aix-tdep.c: Include "gdb_assert.h", "gdbtypes.h", "gdbcore.h", "target.h", "value.h", "infcall.h", "objfiles.h", and "breakpoint.h". (rs6000_find_toc_address_hook): Move here from rs6000-tdep.c. (SIG_FRAME_PC_OFFSET): Likewise. (SIG_FRAME_LR_OFFSET): Likewise. (SIG_FRAME_FP_OFFSET): Likewise. (rs6000_push_dummy_call): Likewise. (rs6000_return_value): Likewise. (rs6000_convert_from_func_ptr_addr): Likewise. (branch_dest, rs6000_software_single_step): Likewise. Replace tdep->text_segment_base by AIX_TEXT_SEGMENT_BASE. (rs6000_aix_init_osabi): Install rs6000_push_dummy_call, rs6000_return_value, and rs6000_convert_from_func_ptr_addr. Call set_gdbarch_long_double_bit and set_gdbarch_frame_red_zone_size. Set tdep->lr_frame_offset. Do not set tdep->text_segment_base. * rs6000-tdep.h (rs6000_software_single_step): Remove prototype. (AIX_TEXT_SEGMENT_BASE): New macro. * rs6000-nat.c (exec_one_dummy_insn): Replace tdep->text_segment_base by AIX_TEXT_SEGMENT_BASE. * ppc-tdep.h (ppc_deal_with_atomic_sequence): Add prototype. (struct gdbarch_tdep): Remove text_segment_base member. * ppc-linux-tdep.c (ppc_linux_init_abi): On 64-bit, install ppc64_sysv_abi_adjust_breakpoint_address. * Makefile.in (rs6000-tdep.o): Update dependencies. (rs6000-aix-tdep.o): Likewise.
2008-05-04 07:50:43 +08:00
/* Minimum possible text address in AIX. */
#define AIX_TEXT_SEGMENT_BASE 0x10000000