2002-12-08 Andrew Cagney <ac131313@redhat.com>
[deliverable/binutils-gdb.git] / gdb / config / rs6000 / tm-rs6000.h
index 8f4552128c64afe195c4ba1ac51923ebcb58b86d..5109978edfedbdb6570853751ed1b0c6311dc03c 100644 (file)
@@ -1,5 +1,6 @@
 /* Parameters for target execution on an RS6000, for GDB, the GNU debugger.
-   Copyright 1986, 1987, 1989, 1991, 1992, 1993, 1994, 1997
+   Copyright 1986, 1987, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
+   1998, 1999, 2000
    Free Software Foundation, Inc.
    Contributed by IBM Corporation.
 
 
 #define TEXT_SEGMENT_BASE      0x10000000
 
-/* Load segment of a given pc value. */
+/* Return whether PC in function NAME is in code that should be skipped when
+   single-stepping.  */
 
-#define        PC_LOAD_SEGMENT(PC)     pc_load_segment_name(PC)
-extern char *pc_load_segment_name (CORE_ADDR);
-
-/* AIX's assembler doesn't grok dollar signs in identifiers.
-   So we use dots instead.  This item must be coordinated with G++. */
-#undef CPLUS_MARKER
-#define CPLUS_MARKER '.'
+#define IN_SOLIB_RETURN_TRAMPOLINE(pc, name) \
+  rs6000_in_solib_return_trampoline (pc, name)
+extern int rs6000_in_solib_return_trampoline (CORE_ADDR, char *);
 
 /* If PC is in some function-call trampoline code, return the PC
    where the function itself actually starts.  If not, return NULL.  */
@@ -78,46 +76,20 @@ extern void aix_process_linenos (void);
 #define FP0_REGNUM 32          /* Floating point register 0 */
 #define FPLAST_REGNUM 63       /* Last floating point register */
 
-/* These #defines are used to parse core files and talk to ptrace, so they
-   must remain fixed.  */
-#define        FIRST_UISA_SP_REGNUM 64 /* first special register number */
-#define LAST_UISA_SP_REGNUM  70        /* last special register number */
-
-/* convert a dbx stab register number (from `r' declaration) to a gdb REGNUM */
-
-#define STAB_REG_TO_REGNUM(value)      (value)
-
 /* Define other aspects of the stack frame.  */
 
-#define INIT_FRAME_PC_FIRST(fromleaf, prev) \
-  prev->pc = (fromleaf ? SAVED_PC_AFTER_CALL (prev->next) : \
-             prev->next ? FRAME_SAVED_PC (prev->next) : read_pc ());
-#define INIT_FRAME_PC(fromleaf, prev)  /* nothing */
-
-/* Usually a function pointer's representation is simply the address
-   of the function. On the RS/6000 however, a function pointer is
-   represented by a pointer to a TOC entry. This TOC entry contains
-   three words, the first word is the address of the function, the
-   second word is the TOC pointer (r2), and the third word is the
-   static chain value.  Throughout GDB it is currently assumed that a
-   function pointer contains the address of the function, which is not
-   easy to fix.  In addition, the conversion of a function address to
-   a function pointer would require allocation of a TOC entry in the
-   inferior's memory space, with all its drawbacks.  To be able to
-   call C++ virtual methods in the inferior (which are called via
-   function pointers), find_function_addr uses this macro to get the
-   function address from a function pointer.  */
-
-#define CONVERT_FROM_FUNC_PTR_ADDR rs6000_convert_from_func_ptr_addr
-extern CORE_ADDR rs6000_convert_from_func_ptr_addr (CORE_ADDR);
+#define DEPRECATED_INIT_FRAME_PC_FIRST(fromleaf, prev) \
+  (fromleaf ? SAVED_PC_AFTER_CALL (prev->next) : \
+             prev->next ? FRAME_SAVED_PC (prev->next) : read_pc ())
+#define INIT_FRAME_PC(fromleaf, prev) (init_frame_pc_noop (fromleaf, prev))
 
 /* Flag for machine-specific stuff in shared files.  FIXME */
 #define IBM6000_TARGET
 
 /* RS6000/AIX does not support PT_STEP.  Has to be simulated.  */
 
-#define SOFTWARE_SINGLE_STEP_P 1
-extern void rs6000_software_single_step (unsigned int, int);
+#define SOFTWARE_SINGLE_STEP_P() 1
+extern void rs6000_software_single_step (enum target_signal, int);
 #define SOFTWARE_SINGLE_STEP(sig,bp_p) rs6000_software_single_step (sig, bp_p)
 
 /* Notice when a new child process is started. */
@@ -134,3 +106,10 @@ extern CORE_ADDR (*rs6000_find_toc_address_hook) (CORE_ADDR);
    child process. */
 
 extern void (*rs6000_set_host_arch_hook) (int);
+
+/* We need solib.h for building cross debuggers.  However, we don't want
+   to clobber any special solib support required by native debuggers, so
+   only include solib.h if SOLIB_ADD is not defined.  */
+#ifndef SOLIB_ADD
+#include "solib.h"
+#endif
This page took 0.024712 seconds and 4 git commands to generate.