2003-06-09 Andrew Cagney <cagney@redhat.com>
authorAndrew Cagney <cagney@redhat.com>
Mon, 9 Jun 2003 17:35:59 +0000 (17:35 +0000)
committerAndrew Cagney <cagney@redhat.com>
Mon, 9 Jun 2003 17:35:59 +0000 (17:35 +0000)
* gdbarch.sh (FRAME_NUM_ARGS): Change to function with predicate.
* gdbarch.h, gdbarch.c: Re-generate.
* arch-utils.h (frame_num_args_unknown): Delete both declarations.
* arch-utils.c (frame_num_args_unknown): Delete function.
* stack.c (print_args_stub): Use FRAME_NUM_ARGS_P.
(frame_info): Use FRAME_NUM_ARGS_P.
* arm-tdep.c (arm_frame_num_args): Delete function.
(arm_gdbarch_init): Do not set frame_num_args.
* config/pa/tm-hppa64.h (FRAME_NUM_ARGS): Delete.
* hppa-tdep.c (hppa_frame_num_args): Delete function.
(hppa_gdbarch_init): Do not set frame_num_args.
* config/sparc/tm-sparc.h (FRAME_NUM_ARGS): Delete.
* xstormy16-tdep.c (xstormy16_gdbarch_init): Do not set
frame_num_args to default frame_num_args_unknown.
* v850-tdep.c (v850_gdbarch_init): Ditto.
* sparc-tdep.c (sparc_gdbarch_init): Ditto.
* sh-tdep.c (sh_gdbarch_init): Ditto.
* s390-tdep.c (s390_gdbarch_init): Ditto.
* rs6000-tdep.c (rs6000_gdbarch_init): Ditto.
* mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
* mips-tdep.c (mips_gdbarch_init): Ditto.
* mcore-tdep.c (mcore_gdbarch_init): Ditto.
* m68k-tdep.c (m68k_gdbarch_init): Ditto.
* m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
* ia64-tdep.c (ia64_gdbarch_init): Ditto.
* i386-tdep.c (i386_gdbarch_init): Ditto.
* h8300-tdep.c (h8300_gdbarch_init): Ditto.
* frv-tdep.c (frv_gdbarch_init): Ditto.
* d10v-tdep.c (d10v_gdbarch_init): Ditto.
* cris-tdep.c (cris_gdbarch_init): Ditto.
* avr-tdep.c (avr_gdbarch_init): Ditto.
* alpha-tdep.c (alpha_gdbarch_init): Ditto.

30 files changed:
gdb/ChangeLog
gdb/alpha-tdep.c
gdb/arch-utils.c
gdb/arch-utils.h
gdb/arm-tdep.c
gdb/avr-tdep.c
gdb/config/pa/tm-hppa64.h
gdb/config/sparc/tm-sparc.h
gdb/cris-tdep.c
gdb/d10v-tdep.c
gdb/frv-tdep.c
gdb/gdbarch.c
gdb/gdbarch.h
gdb/gdbarch.sh
gdb/h8300-tdep.c
gdb/hppa-tdep.c
gdb/i386-tdep.c
gdb/ia64-tdep.c
gdb/m68hc11-tdep.c
gdb/m68k-tdep.c
gdb/mcore-tdep.c
gdb/mips-tdep.c
gdb/mn10300-tdep.c
gdb/rs6000-tdep.c
gdb/s390-tdep.c
gdb/sh-tdep.c
gdb/sparc-tdep.c
gdb/stack.c
gdb/v850-tdep.c
gdb/xstormy16-tdep.c

index beb2cc9162fbd4e61cde830ab32a8c63b44213d3..cf89b9063a10d1e4029c24f9861209b920419b86 100644 (file)
@@ -1,3 +1,38 @@
+2003-06-09  Andrew Cagney  <cagney@redhat.com>
+
+       * gdbarch.sh (FRAME_NUM_ARGS): Change to function with predicate.
+       * gdbarch.h, gdbarch.c: Re-generate.
+       * arch-utils.h (frame_num_args_unknown): Delete both declarations.
+       * arch-utils.c (frame_num_args_unknown): Delete function.
+       * stack.c (print_args_stub): Use FRAME_NUM_ARGS_P.
+       (frame_info): Use FRAME_NUM_ARGS_P.
+       * arm-tdep.c (arm_frame_num_args): Delete function.
+       (arm_gdbarch_init): Do not set frame_num_args.
+       * config/pa/tm-hppa64.h (FRAME_NUM_ARGS): Delete.
+       * hppa-tdep.c (hppa_frame_num_args): Delete function.
+       (hppa_gdbarch_init): Do not set frame_num_args.
+       * config/sparc/tm-sparc.h (FRAME_NUM_ARGS): Delete.
+       * xstormy16-tdep.c (xstormy16_gdbarch_init): Do not set
+       frame_num_args to default frame_num_args_unknown.
+       * v850-tdep.c (v850_gdbarch_init): Ditto.
+       * sparc-tdep.c (sparc_gdbarch_init): Ditto.
+       * sh-tdep.c (sh_gdbarch_init): Ditto.
+       * s390-tdep.c (s390_gdbarch_init): Ditto.
+       * rs6000-tdep.c (rs6000_gdbarch_init): Ditto.
+       * mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
+       * mips-tdep.c (mips_gdbarch_init): Ditto.
+       * mcore-tdep.c (mcore_gdbarch_init): Ditto.
+       * m68k-tdep.c (m68k_gdbarch_init): Ditto.
+       * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
+       * ia64-tdep.c (ia64_gdbarch_init): Ditto.
+       * i386-tdep.c (i386_gdbarch_init): Ditto.
+       * h8300-tdep.c (h8300_gdbarch_init): Ditto.
+       * frv-tdep.c (frv_gdbarch_init): Ditto.
+       * d10v-tdep.c (d10v_gdbarch_init): Ditto.
+       * cris-tdep.c (cris_gdbarch_init): Ditto.
+       * avr-tdep.c (avr_gdbarch_init): Ditto.
+       * alpha-tdep.c (alpha_gdbarch_init): Ditto.
+
 2003-06-09  Andrew Cagney  <cagney@redhat.com>
 
        * printcmd.c (print_frame_nameless_args): Moved to "stack.c".
index f88725ca9a0878c08579d562f3bc5f4b6b0415eb..b1de40cd64d092bd191c86894f57513e2d9fb9b5 100644 (file)
@@ -1537,7 +1537,6 @@ alpha_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_print_insn (gdbarch, print_insn_alpha);
 
   /* Call info.  */
-  set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown);
   set_gdbarch_frameless_function_invocation (gdbarch,
                                     generic_frameless_function_invocation_not);
 
index 48f7f7ebe05c2060596d8b5b19054d3b5749e623..f4a327e2e213c4dddaaa78fce21633743cecc89b 100644 (file)
@@ -231,13 +231,6 @@ default_double_format (struct gdbarch *gdbarch)
 
 /* Misc helper functions for targets. */
 
-int
-frame_num_args_unknown (struct frame_info *fi)
-{
-  return -1;
-}
-
-
 int
 generic_register_convertible_not (int num)
 {
index 27f219b0be990701f415c7a8a81cf4db4c15d4f7..a4c59e0060f36c678b354c741ea6b6583238541c 100644 (file)
@@ -36,10 +36,6 @@ extern gdbarch_register_convertible_ftype generic_register_convertible_not;
 
 extern CORE_ADDR generic_cannot_extract_struct_value_address (char *dummy);
 
-/* Helper function for targets that don't know how my arguments are
-   being passed */
-extern gdbarch_frame_num_args_ftype frame_num_args_unknown;
-
 /* Implementation of extract return value that grubs around in the
    register cache.  */
 extern gdbarch_extract_return_value_ftype legacy_extract_return_value;
@@ -81,11 +77,6 @@ extern int core_addr_greaterthan (CORE_ADDR lhs, CORE_ADDR rhs);
 extern const struct floatformat *default_float_format (struct gdbarch *gdbarch);
 extern const struct floatformat *default_double_format (struct gdbarch *gdbarch);
 
-/* Helper function for targets that don't know how my arguments are
-   being passed */
-extern int frame_num_args_unknown (struct frame_info *fi);
-
-
 /* The following DEPRECATED interfaces are for pre- multi-arch legacy
    targets. */
 
index 4aaf15168c9d542b513c767c0cbed187d1b40b91..045496ce11717e300a3bf402db6a44d9ea8bed79 100644 (file)
@@ -320,14 +320,6 @@ arm_frame_locals_address (struct frame_info *fi)
   return get_frame_base (fi);
 }
 
-/* The number of arguments being passed in the frame.  */
-static int
-arm_frame_num_args (struct frame_info *fi)
-{
-  /* We have no way of knowing.  */
-  return -1;
-}
-
 /* A typical Thumb prologue looks like this:
    push    {r7, lr}
    add     sp, sp, #-28
@@ -2946,7 +2938,6 @@ arm_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_deprecated_frame_saved_pc (gdbarch, arm_frame_saved_pc);
   set_gdbarch_frame_args_address (gdbarch, arm_frame_args_address);
   set_gdbarch_frame_locals_address (gdbarch, arm_frame_locals_address);
-  set_gdbarch_frame_num_args (gdbarch, arm_frame_num_args);
   set_gdbarch_frame_args_skip (gdbarch, 0);
   set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, arm_frame_init_saved_regs);
   set_gdbarch_deprecated_pop_frame (gdbarch, arm_pop_frame);
index 792f3fadc7647deaa4215bf939d6d5aea8ef28d9..382db8764a1995deb526e49e52a6ecb1faa1de0b 100644 (file)
@@ -1213,7 +1213,6 @@ avr_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_frame_args_address (gdbarch, avr_frame_address);
   set_gdbarch_frame_locals_address (gdbarch, avr_frame_address);
   set_gdbarch_deprecated_saved_pc_after_call (gdbarch, avr_saved_pc_after_call);
-  set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown);
 
   set_gdbarch_convert_from_func_ptr_addr (gdbarch,
                                          avr_convert_from_func_ptr_addr);
index a3cc4bedcbd0cd2e88995e3e76fa0b1b0ab41bed..a8d414e0551d5c6ed85fa4f591b2f5192221da69 100644 (file)
@@ -291,11 +291,6 @@ extern CORE_ADDR hppa_frame_locals_address (struct frame_info *fi);
 #define FRAME_LOCALS_ADDRESS(fi) hppa_frame_locals_address (fi)
 #endif
 
-#if !GDB_MULTI_ARCH
-extern int hppa_frame_num_args (struct frame_info *frame);
-#define FRAME_NUM_ARGS(fi) hppa_frame_num_args (fi)
-#endif
-
 #if !GDB_MULTI_ARCH
 #define FRAME_ARGS_SKIP 0
 #endif
index 16f94db182c52758225a9c2af3f05d61168370fa..4f8acaf4448b1ba440a9015dba75a5b2b38c6928 100644 (file)
@@ -448,10 +448,6 @@ extern CORE_ADDR sparc_frame_saved_pc (struct frame_info *);
 /* Set VAL to the number of args passed to frame described by FI.
    Can set VAL to -1, meaning no way to tell.  */
 
-/* We can't tell how many args there are
-   now that the C compiler delays popping them.  */
-#define FRAME_NUM_ARGS(FI) (-1)
-
 /* Return number of bytes at start of arglist that are not really args.  */
 
 #define FRAME_ARGS_SKIP 68
index 7bf7e9a60ba9a5ce0fe70e435ddd272d93ad58ad..441d93e8403ad7ae1d4a62b1e16f3256b26056d4 100644 (file)
@@ -4302,8 +4302,6 @@ cris_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_deprecated_frame_saved_pc (gdbarch, cris_frame_saved_pc);
   set_gdbarch_deprecated_saved_pc_after_call (gdbarch, cris_saved_pc_after_call);
 
-  set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown);
-  
   /* Helpful for backtracing and returning in a call dummy.  */
   set_gdbarch_save_dummy_frame_tos (gdbarch, generic_save_dummy_frame_tos);
 
index 84d0a85244d0029007d3b6a207ef488b5f61901f..62a8c30bc215d212e4df468e8b9b2b2a1961c1c9 100644 (file)
@@ -1584,7 +1584,6 @@ d10v_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_frame_args_skip (gdbarch, 0);
   set_gdbarch_frameless_function_invocation (gdbarch, frameless_look_for_prologue);
 
-  set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown);
   set_gdbarch_frame_align (gdbarch, d10v_frame_align);
 
   set_gdbarch_register_sim_regno (gdbarch, d10v_register_sim_regno);
index c978ec48b5cabdb21aa92b390e5cb46376434e7e..cf96d3d1bff560c00c0e0cdc845c7c905fa3475e 100644 (file)
@@ -1069,7 +1069,6 @@ frv_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_skip_prologue (gdbarch, frv_skip_prologue);
   set_gdbarch_breakpoint_from_pc (gdbarch, frv_breakpoint_from_pc);
 
-  set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown);
   set_gdbarch_frame_args_skip (gdbarch, 0);
   set_gdbarch_frameless_function_invocation (gdbarch, frv_frameless_function_invocation);
 
index 648b8f50e74346797ca4d078a1d15223f45790d8..20b3509f9134ba6f7bfd78788fb03c3df55b0270 100644 (file)
@@ -727,9 +727,7 @@ verify_gdbarch (struct gdbarch *gdbarch)
   /* Skip verify of frame_args_address, invalid_p == 0 */
   /* Skip verify of frame_locals_address, invalid_p == 0 */
   /* Skip verify of deprecated_saved_pc_after_call, has predicate */
-  if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
-      && (gdbarch->frame_num_args == 0))
-    fprintf_unfiltered (log, "\n\tframe_num_args");
+  /* Skip verify of frame_num_args, has predicate */
   /* Skip verify of stack_align, has predicate */
   /* Skip verify of frame_align, has predicate */
   /* Skip verify of deprecated_extra_stack_alignment_needed, invalid_p == 0 */
@@ -1766,6 +1764,15 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
                         (long) current_gdbarch->frame_locals_address
                         /*FRAME_LOCALS_ADDRESS ()*/);
 #endif
+#ifdef FRAME_NUM_ARGS_P
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: %s # %s\n",
+                      "FRAME_NUM_ARGS_P()",
+                      XSTRING (FRAME_NUM_ARGS_P ()));
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: FRAME_NUM_ARGS_P() = %d\n",
+                      FRAME_NUM_ARGS_P ());
+#endif
 #ifdef FRAME_NUM_ARGS
   fprintf_unfiltered (file,
                       "gdbarch_dump: %s # %s\n",
@@ -5071,6 +5078,13 @@ set_gdbarch_deprecated_saved_pc_after_call (struct gdbarch *gdbarch,
   gdbarch->deprecated_saved_pc_after_call = deprecated_saved_pc_after_call;
 }
 
+int
+gdbarch_frame_num_args_p (struct gdbarch *gdbarch)
+{
+  gdb_assert (gdbarch != NULL);
+  return gdbarch->frame_num_args != 0;
+}
+
 int
 gdbarch_frame_num_args (struct gdbarch *gdbarch, struct frame_info *frame)
 {
index e9895cfe042380bd0cad5e70a015a85820f7d661..778d7a3c1a29df23037ec2c4659cc19d4dca0ba7 100644 (file)
@@ -2331,6 +2331,31 @@ extern void set_gdbarch_deprecated_saved_pc_after_call (struct gdbarch *gdbarch,
 #define DEPRECATED_SAVED_PC_AFTER_CALL(frame) (gdbarch_deprecated_saved_pc_after_call (current_gdbarch, frame))
 #endif
 
+#if defined (FRAME_NUM_ARGS)
+/* Legacy for systems yet to multi-arch FRAME_NUM_ARGS */
+#if !defined (FRAME_NUM_ARGS_P)
+#define FRAME_NUM_ARGS_P() (1)
+#endif
+#endif
+
+/* Default predicate for non- multi-arch targets. */
+#if (!GDB_MULTI_ARCH) && !defined (FRAME_NUM_ARGS_P)
+#define FRAME_NUM_ARGS_P() (0)
+#endif
+
+extern int gdbarch_frame_num_args_p (struct gdbarch *gdbarch);
+#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (FRAME_NUM_ARGS_P)
+#error "Non multi-arch definition of FRAME_NUM_ARGS"
+#endif
+#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (FRAME_NUM_ARGS_P)
+#define FRAME_NUM_ARGS_P() (gdbarch_frame_num_args_p (current_gdbarch))
+#endif
+
+/* Default (function) for non- multi-arch platforms. */
+#if (!GDB_MULTI_ARCH) && !defined (FRAME_NUM_ARGS)
+#define FRAME_NUM_ARGS(frame) (internal_error (__FILE__, __LINE__, "FRAME_NUM_ARGS"), 0)
+#endif
+
 typedef int (gdbarch_frame_num_args_ftype) (struct frame_info *frame);
 extern int gdbarch_frame_num_args (struct gdbarch *gdbarch, struct frame_info *frame);
 extern void set_gdbarch_frame_num_args (struct gdbarch *gdbarch, gdbarch_frame_num_args_ftype *frame_num_args);
index c1f83a91aff4f461a77029c299ca192d281ade6e..bfeb2c51f608f26f805a9d496f8692c0cb1642df 100755 (executable)
@@ -615,7 +615,7 @@ M::UNWIND_SP:CORE_ADDR:unwind_sp:struct frame_info *next_frame:next_frame:
 f:2:FRAME_ARGS_ADDRESS:CORE_ADDR:frame_args_address:struct frame_info *fi:fi::0:get_frame_base::0
 f:2:FRAME_LOCALS_ADDRESS:CORE_ADDR:frame_locals_address:struct frame_info *fi:fi::0:get_frame_base::0
 F::DEPRECATED_SAVED_PC_AFTER_CALL:CORE_ADDR:deprecated_saved_pc_after_call:struct frame_info *frame:frame
-f:2:FRAME_NUM_ARGS:int:frame_num_args:struct frame_info *frame:frame::0:0
+F:2:FRAME_NUM_ARGS:int:frame_num_args:struct frame_info *frame:frame
 #
 F:2:STACK_ALIGN:CORE_ADDR:stack_align:CORE_ADDR sp:sp::0:0
 M:::CORE_ADDR:frame_align:CORE_ADDR address:address
index 43ecf50a519d5b34b9e32624197b70c7fa1ef6bb..de2db4e3aa056008dc1a0a3d9e15f94249e0f3f9 100644 (file)
@@ -1161,8 +1161,6 @@ h8300_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_function_start_offset (gdbarch, 0);
   /* This value is almost never non-zero... */
   set_gdbarch_frame_args_skip (gdbarch, 0);
-  /* OK to default this value to 'unknown'. */
-  set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown);
   set_gdbarch_frameless_function_invocation (gdbarch,
                                             frameless_look_for_prologue);
 
index 24305ff60ff76fab01a903bcea54e9e16cea57a2..252954782cb21cddc7746eb9e721486bd86291c1 100644 (file)
@@ -4886,14 +4886,6 @@ hppa_frame_locals_address (struct frame_info *fi)
   return get_frame_base (fi);
 }
 
-int
-hppa_frame_num_args (struct frame_info *frame)
-{
-  /* We can't tell how many args there are now that the C compiler delays
-     popping them.  */
-  return -1;
-}
-
 CORE_ADDR
 hppa_smash_text_address (CORE_ADDR addr)
 {
@@ -4982,7 +4974,6 @@ hppa_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_deprecated_frame_saved_pc (gdbarch, hppa_frame_saved_pc);
   set_gdbarch_frame_args_address (gdbarch, hppa_frame_args_address);
   set_gdbarch_frame_locals_address (gdbarch, hppa_frame_locals_address);
-  set_gdbarch_frame_num_args (gdbarch, hppa_frame_num_args);
   set_gdbarch_frame_args_skip (gdbarch, 0);
   set_gdbarch_deprecated_push_dummy_frame (gdbarch, hppa_push_dummy_frame);
   set_gdbarch_deprecated_pop_frame (gdbarch, hppa_pop_frame);
index b8fd0e5d888584efe3223f275d0518e51975fe44..6194e6821970ba14f2247c9a3e5b3aceb20f60a3 100644 (file)
@@ -1707,7 +1707,6 @@ i386_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_function_start_offset (gdbarch, 0);
 
   set_gdbarch_frame_args_skip (gdbarch, 8);
-  set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown);
   set_gdbarch_pc_in_sigtramp (gdbarch, i386_pc_in_sigtramp);
 
   /* Wire in the MMX registers.  */
index e803ee8e29ebdf71d69595efc069773ed2380e5c..8b9d6d1a87741fd96d177922f2aa32d774fd65d5 100644 (file)
@@ -2264,7 +2264,6 @@ ia64_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
 
   set_gdbarch_skip_prologue (gdbarch, ia64_skip_prologue);
 
-  set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown);
   set_gdbarch_frameless_function_invocation (gdbarch, ia64_frameless_function_invocation);
 
   set_gdbarch_deprecated_saved_pc_after_call (gdbarch, ia64_saved_pc_after_call);
index 139689d421db3677cb169dba43f6ea09cdd77733..ce7498e7ba4caadc3c26fe442ea868c233ecf995 100644 (file)
@@ -1395,7 +1395,6 @@ m68hc11_gdbarch_init (struct gdbarch_info info,
   set_gdbarch_frame_args_address (gdbarch, m68hc11_frame_args_address);
   set_gdbarch_frame_locals_address (gdbarch, m68hc11_frame_locals_address);
   set_gdbarch_deprecated_saved_pc_after_call (gdbarch, m68hc11_saved_pc_after_call);
-  set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown);
 
   set_gdbarch_deprecated_get_saved_register (gdbarch, deprecated_generic_get_saved_register);
 
index 5f21fb188c0d4de3b1c632badd7ab278de6ba324..ca9082fa73b4817846e0035394b080ec595bfb17 100644 (file)
@@ -929,8 +929,6 @@ m68k_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, m68k_frame_init_saved_regs);
   set_gdbarch_frameless_function_invocation (gdbarch,
                                             m68k_frameless_function_invocation);
-  /* OK to default this value to 'unknown'. */
-  set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown);
   set_gdbarch_frame_args_skip (gdbarch, 8);
 
   set_gdbarch_register_raw_size (gdbarch, m68k_register_raw_size);
index b24a7358ef6673ab17c9cbef46314e32cfdf362d..d99e368708e7542c5049a9f242cc4f3c90af9ad6 100644 (file)
@@ -1144,7 +1144,6 @@ mcore_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_frame_args_skip (gdbarch, 0);
   set_gdbarch_frame_args_address (gdbarch, mcore_frame_args_address);
   set_gdbarch_frame_locals_address (gdbarch, mcore_frame_locals_address);
-  set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown);
   set_gdbarch_deprecated_pop_frame (gdbarch, mcore_pop_frame);
   set_gdbarch_virtual_frame_pointer (gdbarch, mcore_virtual_frame_pointer);
 
index 7bc4aebf5e378f301a6c830d415df104c255a87a..b7c756a142b347f05e6e81ba52f3602eeff52215 100644 (file)
@@ -5971,7 +5971,6 @@ mips_gdbarch_init (struct gdbarch_info info,
   set_gdbarch_frameless_function_invocation (gdbarch, 
                                             generic_frameless_function_invocation_not);
   set_gdbarch_deprecated_frame_saved_pc (gdbarch, mips_frame_saved_pc);
-  set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown);
   set_gdbarch_frame_args_skip (gdbarch, 0);
 
   set_gdbarch_deprecated_get_saved_register (gdbarch, mips_get_saved_register);
index d6d39b904b826a2abd0e4fc5fb3e5d23055246a8..c40d2430ec554d125b4707404282d2f15c93b4bc 100644 (file)
@@ -1191,7 +1191,6 @@ mn10300_gdbarch_init (struct gdbarch_info info,
   set_gdbarch_deprecated_pop_frame (gdbarch, mn10300_pop_frame);
   set_gdbarch_skip_prologue (gdbarch, mn10300_skip_prologue);
   set_gdbarch_frame_args_skip (gdbarch, 0);
-  set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown);
   /* That's right, we're using the stack pointer as our frame pointer.  */
   set_gdbarch_deprecated_target_read_fp (gdbarch, mn10300_read_fp);
 
index bcd731622316a470e6062ee3517ceffdd9677c5a..df595e58f60b2a5abd11a144d6efbacb4f0327b3 100644 (file)
@@ -3002,10 +3002,6 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   /* Helpers for function argument information.  */
   set_gdbarch_fetch_pointer_argument (gdbarch, rs6000_fetch_pointer_argument);
 
-  /* We can't tell how many args there are
-     now that the C compiler delays popping them.  */
-  set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown);
-
   /* Hook in ABI-specific overrides, if they have been registered.  */
   gdbarch_init_osabi (info, gdbarch);
 
index f3810a8817bc1dff1d82b90f330fab3f6e964169..d53da9adee11f407fa6b85ccea3465172f1f339b 100644 (file)
@@ -1820,8 +1820,6 @@ s390_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_deprecated_frame_chain (gdbarch, s390_frame_chain);
   set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, s390_frame_init_saved_regs);
   set_gdbarch_frame_locals_address (gdbarch, s390_frame_args_address);
-  /* We can't do this */
-  set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown);
   set_gdbarch_deprecated_store_struct_return (gdbarch, s390_store_struct_return);
   set_gdbarch_deprecated_extract_return_value (gdbarch, s390_extract_return_value);
   set_gdbarch_deprecated_store_return_value (gdbarch, s390_store_return_value);
index c0875d5d377ff2ef2be3f64dee6bc99a295d9ef5..0152702f3e39965173c5d60dc587c36c432b27f3 100644 (file)
@@ -4665,7 +4665,6 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_frameless_function_invocation (gdbarch, frameless_look_for_prologue);
   set_gdbarch_deprecated_frame_saved_pc (gdbarch, sh_frame_saved_pc);
   set_gdbarch_deprecated_saved_pc_after_call (gdbarch, sh_saved_pc_after_call);
-  set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown);
   set_gdbarch_believe_pcc_promotion (gdbarch, 1);
 
   /* Hook in ABI-specific overrides, if they have been registered.  */
index e14db143cb5c66e3d3b49fd2547c883324458c4c..d22e1cadf0695aa6922fcd748af1cbcf5f58d51a 100644 (file)
@@ -3306,7 +3306,6 @@ sparc_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_fp0_regnum (gdbarch, SPARC_FP0_REGNUM);
   set_gdbarch_deprecated_frame_chain (gdbarch, sparc_frame_chain);
   set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, sparc_frame_init_saved_regs);
-  set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown);
   set_gdbarch_deprecated_frame_saved_pc (gdbarch, sparc_frame_saved_pc);
   set_gdbarch_frameless_function_invocation (gdbarch, 
                                             frameless_look_for_prologue);
index 1f874e6eab467019dbcd39c6aac55dff2c86c4d5..a1a786bc88067c110d7bb554e4831cc6c7019734 100644 (file)
@@ -398,7 +398,13 @@ print_args_stub (void *args)
   int numargs;
   struct print_args_args *p = (struct print_args_args *) args;
 
-  numargs = FRAME_NUM_ARGS (p->fi);
+  if (FRAME_NUM_ARGS_P ())
+    {
+      numargs = FRAME_NUM_ARGS (p->fi);
+      gdb_assert (numargs >= 0);
+    }
+  else
+    numargs = -1;
   print_frame_args (p->func, p->fi, numargs, p->stream);
   return 0;
 }
@@ -982,15 +988,22 @@ frame_info (char *addr_exp, int from_tty)
        print_address_numeric (arg_list, 1, gdb_stdout);
        printf_filtered (",");
 
-       numargs = FRAME_NUM_ARGS (fi);
-       if (numargs < 0)
-         puts_filtered (" args: ");
-       else if (numargs == 0)
-         puts_filtered (" no args.");
-       else if (numargs == 1)
-         puts_filtered (" 1 arg: ");
+       if (!FRAME_NUM_ARGS_P ())
+         {
+           numargs = -1;
+           puts_filtered (" args: ");
+         }
        else
-         printf_filtered (" %d args: ", numargs);
+         {
+           numargs = FRAME_NUM_ARGS (fi);
+           gdb_assert (numargs >= 0);
+           if (numargs == 0)
+             puts_filtered (" no args.");
+           else if (numargs == 1)
+             puts_filtered (" 1 arg: ");
+           else
+             printf_filtered (" %d args: ", numargs);
+         }
        print_frame_args (func, fi, numargs, gdb_stdout);
        puts_filtered ("\n");
       }
index 2610e633dd12bc164ef51ba9aaa01cacef9f2706..618f62d13d4dda9a2c49dfb9f8b500a05e449370 100644 (file)
@@ -1262,8 +1262,6 @@ v850_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_function_start_offset (gdbarch, 0);
   /* This value is almost never non-zero... */
   set_gdbarch_frame_args_skip (gdbarch, 0);
-  /* OK to default this value to 'unknown'. */
-  set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown);
 
   /*
    * Call Dummies
index 19f1abf487c2770b536bee10a5257290d69f3e4b..3171858dbc8056e436a0bbacb75234be156df51c 100644 (file)
@@ -1075,8 +1075,6 @@ xstormy16_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_function_start_offset (gdbarch, 0);
   /* This value is almost never non-zero... */
   set_gdbarch_frame_args_skip (gdbarch, 0);
-  /* OK to default this value to 'unknown'. */
-  set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown);
 
   /*
    * Call Dummies