Make print_float_info() multi-arch pure. Add ui_file and frame parameters.
[deliverable/binutils-gdb.git] / gdb / m68k-tdep.c
index c15a1e8a679966e035e0f790a4a45d0345bccc63..1c4bc4d4d1f5f0639193bc5723056cd626792e1e 100644 (file)
@@ -1,5 +1,5 @@
 /* Target dependent code for the Motorola 68000 series.
-   Copyright (C) 1990, 1992, 1993, 1994, 1995, 1996, 1999, 2000
+   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1999, 2000, 2001
    Free Software Foundation, Inc.
 
    This file is part of GDB.
@@ -26,6 +26,7 @@
 #include "value.h"
 #include "gdb_string.h"
 #include "inferior.h"
+#include "regcache.h"
 \f
 
 #define P_LINKL_FP     0x480e
@@ -52,29 +53,7 @@ altos_skip_prologue (CORE_ADDR pc)
   else if (op == P_LINKL_FP)
     pc += 6;                   /* Skip link #long */
   /* Not sure why branches are here.  */
-  /* From tm-isi.h, tm-altos.h */
-  else if (op == 0060000)
-    pc += 4;                   /* Skip bra #word */
-  else if (op == 00600377)
-    pc += 6;                   /* skip bra #long */
-  else if ((op & 0177400) == 0060000)
-    pc += 2;                   /* skip bra #char */
-  return pc;
-}
-
-/* The only reason this is here is the tm-isi.h reference below.  It
-   was moved back here from tm-m68k.h.  FIXME? */
-
-extern CORE_ADDR
-isi_skip_prologue (CORE_ADDR pc)
-{
-  register int op = read_memory_integer (pc, 2);
-  if (op == P_LINKW_FP)
-    pc += 4;                   /* Skip link #word */
-  else if (op == P_LINKL_FP)
-    pc += 6;                   /* Skip link #long */
-  /* Not sure why branches are here.  */
-  /* From tm-isi.h, tm-altos.h */
+  /* From tm-altos.h */
   else if (op == 0060000)
     pc += 4;                   /* Skip bra #word */
   else if (op == 00600377)
@@ -637,18 +616,24 @@ fill_fpregset (fpregset_t *fpregsetp, int regno)
 
 #endif /* USE_PROC_FS */
 
-#ifdef GET_LONGJMP_TARGET
 /* Figure out where the longjmp will land.  Slurp the args out of the stack.
    We expect the first arg to be a pointer to the jmp_buf structure from which
    we extract the pc (JB_PC) that we will land at.  The pc is copied into PC.
    This routine returns true on success. */
 
+/* NOTE: cagney/2000-11-08: For this function to be fully multi-arched
+   the macro's JB_PC and JB_ELEMENT_SIZE would need to be moved into
+   the ``struct gdbarch_tdep'' object and then set on a target ISA/ABI
+   dependant basis. */
+
 int
-get_longjmp_target (CORE_ADDR *pc)
+m68k_get_longjmp_target (CORE_ADDR *pc)
 {
-  char buf[TARGET_PTR_BIT / TARGET_CHAR_BIT];
+#if defined (JB_PC) && defined (JB_ELEMENT_SIZE)
+  char *buf;
   CORE_ADDR sp, jb_addr;
 
+  buf = alloca (TARGET_PTR_BIT / TARGET_CHAR_BIT);
   sp = read_register (SP_REGNUM);
 
   if (target_read_memory (sp + SP_ARG0,                /* Offset of first arg on stack */
@@ -665,8 +650,12 @@ get_longjmp_target (CORE_ADDR *pc)
   *pc = extract_address (buf, TARGET_PTR_BIT / TARGET_CHAR_BIT);
 
   return 1;
+#else
+  internal_error (__FILE__, __LINE__,
+                 "m68k_get_longjmp_target: not implemented");
+  return 0;
+#endif
 }
-#endif /* GET_LONGJMP_TARGET */
 
 /* Immediately after a function call, return the saved pc before the frame
    is setup.  For sun3's, we check for the common case of being inside of a
This page took 0.024854 seconds and 4 git commands to generate.