2004-10-30 Andrew Cagney <cagney@gnu.org>
authorAndrew Cagney <cagney@redhat.com>
Sat, 30 Oct 2004 21:16:10 +0000 (21:16 +0000)
committerAndrew Cagney <cagney@redhat.com>
Sat, 30 Oct 2004 21:16:10 +0000 (21:16 +0000)
* alpha-tdep.c (alpha_setup_arbitrary_frame): Delete.
* config/alpha/tm-alpha.h (SETUP_ARBITRARY_FRAME): Delete.
(alpha_setup_arbitrary_frame): Delete.
* mips-tdep.c (setup_arbitrary_frame): Delete.
* config/mips/tm-mips.h (SETUP_ARBITRARY_FRAME): Delete.
(setup_arbitrary_frame): Delete.
* stack.c (parse_frame_specification_1): When specified, call
create_new_frame with two parameters.  Delete #ifdef
SETUP_ARBITRARY_FRAME.

gdb/ChangeLog
gdb/alpha-tdep.c
gdb/config/alpha/tm-alpha.h
gdb/config/mips/tm-mips.h
gdb/mips-tdep.c
gdb/stack.c

index 4e141eee6ff9a62298ab6724c15701c0391ec5dc..6ec5b866d10263bd7a1c7a196d8df97fbc776dc6 100644 (file)
@@ -1,5 +1,15 @@
 2004-10-30  Andrew Cagney  <cagney@gnu.org>
 
+       * alpha-tdep.c (alpha_setup_arbitrary_frame): Delete.
+       * config/alpha/tm-alpha.h (SETUP_ARBITRARY_FRAME): Delete.
+       (alpha_setup_arbitrary_frame): Delete.
+       * mips-tdep.c (setup_arbitrary_frame): Delete.
+       * config/mips/tm-mips.h (SETUP_ARBITRARY_FRAME): Delete.
+       (setup_arbitrary_frame): Delete.
+       * stack.c (parse_frame_specification_1): When specified, call
+       create_new_frame with two parameters.  Delete #ifdef
+       SETUP_ARBITRARY_FRAME.
+
        * config/mips/tm-mips.h (MIPS16_INSTLEN, MIPS_NUMREGS)
        (MIPS_INSTLEN): Delete.
        * mips-tdep.h (enum mips_insn_size): Rename MIPS32_INSN_SIZE and
index 65fd5c1f0d673c088999ca80469506777cffb027..32b5d6ebe1b34bf34dc963a844494f39e0ecec78 100644 (file)
@@ -1233,30 +1233,6 @@ reinit_frame_cache_sfunc (char *args, int from_tty, struct cmd_list_element *c)
 }
 
 \f
-/* ALPHA stack frames are almost impenetrable.  When execution stops,
-   we basically have to look at symbol information for the function
-   that we stopped in, which tells us *which* register (if any) is
-   the base of the frame pointer, and what offset from that register
-   the frame itself is at.  
-
-   This presents a problem when trying to examine a stack in memory
-   (that isn't executing at the moment), using the "frame" command.  We
-   don't have a PC, nor do we have any registers except SP.
-
-   This routine takes two arguments, SP and PC, and tries to make the
-   cached frames look as if these two arguments defined a frame on the
-   cache.  This allows the rest of info frame to extract the important
-   arguments without difficulty.  */
-
-struct frame_info *
-alpha_setup_arbitrary_frame (int argc, CORE_ADDR *argv)
-{
-  if (argc != 2)
-    error ("ALPHA frame specifications require two arguments: sp and pc");
-
-  return create_new_frame (argv[0], argv[1]);
-}
-
 /* Assuming NEXT_FRAME->prev is a dummy, return the frame ID of that
    dummy frame.  The frame ID's base needs to match the TOS value
    saved by save_dummy_frame_tos(), and the PC match the dummy frame's
index 0b7878c58a05f69fed090a4350b6614b13a2a5aa..d21ef1d648debec766357dfd7f8fbef137315bfc 100644 (file)
@@ -57,18 +57,4 @@ typedef struct alpha_extra_func_info
 #define mips_extra_func_info alpha_extra_func_info
 #define mips_extra_func_info_t alpha_extra_func_info_t
 
-/* It takes two values to specify a frame on the ALPHA.  Sigh.
-
-   In fact, at the moment, the *PC* is the primary value that sets up
-   a frame.  The PC is looked up to see what function it's in; symbol
-   information from that function tells us which register is the frame
-   pointer base, and what offset from there is the "virtual frame pointer".
-   (This is usually an offset from SP.)  FIXME -- this should be cleaned
-   up so that the primary value is the SP, and the PC is used to disambiguate
-   multiple functions with the same SP that are at different stack levels. */
-
-#define SETUP_ARBITRARY_FRAME(argc, argv) \
-  alpha_setup_arbitrary_frame (argc, argv)
-extern struct frame_info *alpha_setup_arbitrary_frame (int, CORE_ADDR *);
-
 #endif /* TM_ALPHA_H */
index 4adbd6be30c9d0fd26161f04f42f76a16bbcd48b..76cb6366d2b95b039769c822c73b7f6791f97704 100644 (file)
@@ -80,22 +80,6 @@ typedef struct mips_extra_func_info
   }
  *mips_extra_func_info_t;
 
-/* It takes two values to specify a frame on the MIPS.
-
-   In fact, the *PC* is the primary value that sets up a frame.  The
-   PC is looked up to see what function it's in; symbol information
-   from that function tells us which register is the frame pointer
-   base, and what offset from there is the "virtual frame pointer".
-   (This is usually an offset from SP.)  On most non-MIPS machines,
-   the primary value is the SP, and the PC, if needed, disambiguates
-   multiple functions with the same SP.  But on the MIPS we can't do
-   that since the PC is not stored in the same part of the frame every
-   time.  This does not seem to be a very clever way to set up frames,
-   but there is nothing we can do about that.  */
-
-#define SETUP_ARBITRARY_FRAME(argc, argv) setup_arbitrary_frame (argc, argv)
-extern struct frame_info *setup_arbitrary_frame (int, CORE_ADDR *);
-
 /* Functions for dealing with MIPS16 call and return stubs.  */
 #define DEPRECATED_IGNORE_HELPER_CALL(pc)                      mips_ignore_helper (pc)
 extern int mips_ignore_helper (CORE_ADDR pc);
index 6df41d17645ad612e6fd6a08aa86e97e878e4f66..acdf12598b5552da42ae55af6ad451ebce12ba62 100644 (file)
@@ -2326,30 +2326,6 @@ struct mips_objfile_private
   char *contents;
 };
 
-/* MIPS stack frames are almost impenetrable.  When execution stops,
-   we basically have to look at symbol information for the function
-   that we stopped in, which tells us *which* register (if any) is
-   the base of the frame pointer, and what offset from that register
-   the frame itself is at.
-
-   This presents a problem when trying to examine a stack in memory
-   (that isn't executing at the moment), using the "frame" command.  We
-   don't have a PC, nor do we have any registers except SP.
-
-   This routine takes two arguments, SP and PC, and tries to make the
-   cached frames look as if these two arguments defined a frame on the
-   cache.  This allows the rest of info frame to extract the important
-   arguments without difficulty.  */
-
-struct frame_info *
-setup_arbitrary_frame (int argc, CORE_ADDR *argv)
-{
-  if (argc != 2)
-    error ("MIPS frame specifications require two arguments: sp and pc");
-
-  return create_new_frame (argv[0], argv[1]);
-}
-
 /* According to the current ABI, should the type be passed in a
    floating-point register (assuming that there is space)?  When there
    is no FPU, FP are not even considered as possibile candidates for
index 8ae44717defd1b3816922d84448db59e465ecf9d..f2f9cae4783dd469f9cd8e73c0bbe1c35ade93bd 100644 (file)
@@ -828,15 +828,12 @@ parse_frame_specification_1 (const char *frame_exp, const char *message,
 
   /* We couldn't identify the frame as an existing frame, but
      perhaps we can create one with a single argument.  */
-#ifdef SETUP_ARBITRARY_FRAME
-  return SETUP_ARBITRARY_FRAME (numargs, addrs);
-#else
-  /* Usual case.  Do it here rather than have everyone supply a
-     SETUP_ARBITRARY_FRAME that does this.  */
   if (numargs == 1)
     return create_new_frame (addrs[0], 0);
-  error ("Too many args in frame specification");
-#endif
+  else if (numargs == 2)
+    return create_new_frame (addrs[0], addrs[1]);
+  else
+    error ("Too many args in frame specification");
 }
 
 struct frame_info *