2004-02-12 Andrew Cagney <cagney@redhat.com>
authorAndrew Cagney <cagney@redhat.com>
Thu, 12 Feb 2004 16:52:45 +0000 (16:52 +0000)
committerAndrew Cagney <cagney@redhat.com>
Thu, 12 Feb 2004 16:52:45 +0000 (16:52 +0000)
* gdbarch.sh (PROLOGUE_FRAMELESS_P): Delete.
gdbarch.h, gdbarch.c: Re-generate.
* cris-tdep.c (cris_gdbarch_init): Do not set prologue_frameless_p
to generic_prologue_frameless_p.
* arch-utils.h (generic_prologue_frameless_p): Delete declaration.
* arch-utils.c (generic_prologue_frameless_p): Delete function.

gdb/ChangeLog
gdb/arch-utils.c
gdb/arch-utils.h
gdb/blockframe.c
gdb/cris-tdep.c
gdb/gdbarch.c
gdb/gdbarch.h
gdb/gdbarch.sh

index 930c2fa..8040ed1 100644 (file)
@@ -1,3 +1,12 @@
+2004-02-12  Andrew Cagney  <cagney@redhat.com>
+
+       * gdbarch.sh (PROLOGUE_FRAMELESS_P): Delete.
+       gdbarch.h, gdbarch.c: Re-generate.
+       * cris-tdep.c (cris_gdbarch_init): Do not set prologue_frameless_p
+       to generic_prologue_frameless_p.
+       * arch-utils.h (generic_prologue_frameless_p): Delete declaration.
+       * arch-utils.c (generic_prologue_frameless_p): Delete function.
+
 2004-02-11  Daniel Jacobowitz  <drow@mvista.com>
 
        * mips-linux-tdep.c: Include "frame.h".
index a5d8a1c..e8c070d 100644 (file)
@@ -143,12 +143,6 @@ generic_remote_translate_xfer_address (struct gdbarch *gdbarch,
   *rem_len = gdb_len;
 }
 
-int
-generic_prologue_frameless_p (CORE_ADDR ip)
-{
-  return ip == SKIP_PROLOGUE (ip);
-}
-
 /* Helper functions for INNER_THAN */
 
 int
index f8bd5bb..b15f691 100644 (file)
@@ -61,11 +61,6 @@ extern int legacy_sizeof_call_dummy_words;
 /* Typical remote_translate_xfer_address */
 extern gdbarch_remote_translate_xfer_address_ftype generic_remote_translate_xfer_address;
 
-/* Generic implementation of prologue_frameless_p.  Just calls
-   SKIP_PROLOG and checks the return value to see if it actually
-   changed. */
-extern gdbarch_prologue_frameless_p_ftype generic_prologue_frameless_p;
-
 /* The only possible cases for inner_than. */
 extern int core_addr_lessthan (CORE_ADDR lhs, CORE_ADDR rhs);
 extern int core_addr_greaterthan (CORE_ADDR lhs, CORE_ADDR rhs);
index 409ec94..701d986 100644 (file)
@@ -199,9 +199,16 @@ frameless_look_for_prologue (struct frame_info *frame)
   if (func_start)
     {
       func_start += FUNCTION_START_OFFSET;
-      /* This is faster, since only care whether there *is* a
-         prologue, not how long it is.  */
-      return PROLOGUE_FRAMELESS_P (func_start);
+      /* NOTE: cagney/2004-02-09: Eliminated per-architecture
+         PROLOGUE_FRAMELESS_P call as architectures with custom
+         implementations had all been deleted.  Eventually even this
+         function can go - GDB no longer tries to differentiate
+         between framed, frameless and stackless functions.  They are
+         all now considered equally evil :-^.  */
+      /* If skipping the prologue ends up skips nothing, there must be
+         no prologue and hence no code creating a frame.  There for
+         the function is "frameless" :-/.  */
+      return func_start == SKIP_PROLOGUE (func_start);
     }
   else if (get_frame_pc (frame) == 0)
     /* A frame with a zero PC is usually created by dereferencing a
index 7efc4a6..5b1f9db 100644 (file)
@@ -4259,7 +4259,6 @@ cris_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, cris_frame_init_saved_regs);
   set_gdbarch_deprecated_init_extra_frame_info (gdbarch, cris_init_extra_frame_info);
   set_gdbarch_skip_prologue (gdbarch, cris_skip_prologue);
-  set_gdbarch_prologue_frameless_p (gdbarch, generic_prologue_frameless_p);
   
   /* The stack grows downward.  */
   set_gdbarch_inner_than (gdbarch, core_addr_lessthan);
index 911075c..d46d2d5 100644 (file)
@@ -212,7 +212,6 @@ struct gdbarch
   gdbarch_deprecated_frame_init_saved_regs_ftype *deprecated_frame_init_saved_regs;
   gdbarch_deprecated_init_extra_frame_info_ftype *deprecated_init_extra_frame_info;
   gdbarch_skip_prologue_ftype *skip_prologue;
-  gdbarch_prologue_frameless_p_ftype *prologue_frameless_p;
   gdbarch_inner_than_ftype *inner_than;
   gdbarch_breakpoint_from_pc_ftype *breakpoint_from_pc;
   gdbarch_adjust_breakpoint_address_ftype *adjust_breakpoint_address;
@@ -383,7 +382,6 @@ struct gdbarch startup_gdbarch =
   0,  /* deprecated_frame_init_saved_regs */
   0,  /* deprecated_init_extra_frame_info */
   0,  /* skip_prologue */
-  0,  /* prologue_frameless_p */
   0,  /* inner_than */
   0,  /* breakpoint_from_pc */
   0,  /* adjust_breakpoint_address */
@@ -519,7 +517,6 @@ gdbarch_alloc (const struct gdbarch_info *info,
   current_gdbarch->extract_return_value = legacy_extract_return_value;
   current_gdbarch->store_return_value = legacy_store_return_value;
   current_gdbarch->use_struct_convention = generic_use_struct_convention;
-  current_gdbarch->prologue_frameless_p = generic_prologue_frameless_p;
   current_gdbarch->memory_insert_breakpoint = default_memory_insert_breakpoint;
   current_gdbarch->memory_remove_breakpoint = default_memory_remove_breakpoint;
   current_gdbarch->remote_translate_xfer_address = generic_remote_translate_xfer_address;
@@ -691,7 +688,6 @@ verify_gdbarch (struct gdbarch *current_gdbarch)
   if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
       && (current_gdbarch->skip_prologue == 0))
     fprintf_unfiltered (log, "\n\tskip_prologue");
-  /* Skip verify of prologue_frameless_p, invalid_p == 0 */
   if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
       && (current_gdbarch->inner_than == 0))
     fprintf_unfiltered (log, "\n\tinner_than");
@@ -2020,16 +2016,6 @@ gdbarch_dump (struct gdbarch *current_gdbarch, struct ui_file *file)
   fprintf_unfiltered (file,
                       "gdbarch_dump: print_vector_info = 0x%08lx\n",
                       (long) current_gdbarch->print_vector_info);
-#ifdef PROLOGUE_FRAMELESS_P
-  fprintf_unfiltered (file,
-                      "gdbarch_dump: %s # %s\n",
-                      "PROLOGUE_FRAMELESS_P(ip)",
-                      XSTRING (PROLOGUE_FRAMELESS_P (ip)));
-  fprintf_unfiltered (file,
-                      "gdbarch_dump: PROLOGUE_FRAMELESS_P = <0x%08lx>\n",
-                      (long) current_gdbarch->prologue_frameless_p
-                      /*PROLOGUE_FRAMELESS_P ()*/);
-#endif
 #ifdef PS_REGNUM
   fprintf_unfiltered (file,
                       "gdbarch_dump: PS_REGNUM # %s\n",
@@ -4432,23 +4418,6 @@ set_gdbarch_skip_prologue (struct gdbarch *gdbarch,
 }
 
 int
-gdbarch_prologue_frameless_p (struct gdbarch *gdbarch, CORE_ADDR ip)
-{
-  gdb_assert (gdbarch != NULL);
-  gdb_assert (gdbarch->prologue_frameless_p != NULL);
-  if (gdbarch_debug >= 2)
-    fprintf_unfiltered (gdb_stdlog, "gdbarch_prologue_frameless_p called\n");
-  return gdbarch->prologue_frameless_p (ip);
-}
-
-void
-set_gdbarch_prologue_frameless_p (struct gdbarch *gdbarch,
-                                  gdbarch_prologue_frameless_p_ftype prologue_frameless_p)
-{
-  gdbarch->prologue_frameless_p = prologue_frameless_p;
-}
-
-int
 gdbarch_inner_than (struct gdbarch *gdbarch, CORE_ADDR lhs, CORE_ADDR rhs)
 {
   gdb_assert (gdbarch != NULL);
index e6651c7..bce32b4 100644 (file)
@@ -1612,16 +1612,6 @@ extern void set_gdbarch_skip_prologue (struct gdbarch *gdbarch, gdbarch_skip_pro
 #define SKIP_PROLOGUE(ip) (gdbarch_skip_prologue (current_gdbarch, ip))
 #endif
 
-typedef int (gdbarch_prologue_frameless_p_ftype) (CORE_ADDR ip);
-extern int gdbarch_prologue_frameless_p (struct gdbarch *gdbarch, CORE_ADDR ip);
-extern void set_gdbarch_prologue_frameless_p (struct gdbarch *gdbarch, gdbarch_prologue_frameless_p_ftype *prologue_frameless_p);
-#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (PROLOGUE_FRAMELESS_P)
-#error "Non multi-arch definition of PROLOGUE_FRAMELESS_P"
-#endif
-#if !defined (PROLOGUE_FRAMELESS_P)
-#define PROLOGUE_FRAMELESS_P(ip) (gdbarch_prologue_frameless_p (current_gdbarch, ip))
-#endif
-
 typedef int (gdbarch_inner_than_ftype) (CORE_ADDR lhs, CORE_ADDR rhs);
 extern int gdbarch_inner_than (struct gdbarch *gdbarch, CORE_ADDR lhs, CORE_ADDR rhs);
 extern void set_gdbarch_inner_than (struct gdbarch *gdbarch, gdbarch_inner_than_ftype *inner_than);
index 08c6f3c..0c5a440 100755 (executable)
@@ -640,7 +640,6 @@ F:2:DEPRECATED_FRAME_INIT_SAVED_REGS:void:deprecated_frame_init_saved_regs:struc
 F:2:DEPRECATED_INIT_EXTRA_FRAME_INFO:void:deprecated_init_extra_frame_info:int fromleaf, struct frame_info *frame:fromleaf, frame
 #
 f:2:SKIP_PROLOGUE:CORE_ADDR:skip_prologue:CORE_ADDR ip:ip::0:0
-f:2:PROLOGUE_FRAMELESS_P:int:prologue_frameless_p:CORE_ADDR ip:ip::0:generic_prologue_frameless_p::0
 f:2:INNER_THAN:int:inner_than:CORE_ADDR lhs, CORE_ADDR rhs:lhs, rhs::0:0
 f::BREAKPOINT_FROM_PC:const unsigned char *:breakpoint_from_pc:CORE_ADDR *pcptr, int *lenptr:pcptr, lenptr:::0:
 M:2:ADJUST_BREAKPOINT_ADDRESS:CORE_ADDR:adjust_breakpoint_address:CORE_ADDR bpaddr:bpaddr