2004-04-30 Andrew Cagney <cagney@redhat.com>
authorAndrew Cagney <cagney@redhat.com>
Fri, 30 Apr 2004 14:40:56 +0000 (14:40 +0000)
committerAndrew Cagney <cagney@redhat.com>
Fri, 30 Apr 2004 14:40:56 +0000 (14:40 +0000)
* gdbarch.sh (BELIEVE_PCC_PROMOTION_TYPE): Delete.
* gdbarch.h, gdbarch.c: Re-generate.
* stabsread.c (define_symbol): Delete BELIEVE_PCC_PROMOTION_TYPE
code.

gdb/ChangeLog
gdb/doc/ChangeLog
gdb/doc/gdbint.texinfo
gdb/gdbarch.c
gdb/gdbarch.h
gdb/gdbarch.sh
gdb/stabsread.c

index cd7d3d4ea2b2065d1e8814129e255cc5b61db023..b0277617a260077e71b67dcffb926db9369acadf 100644 (file)
@@ -1,3 +1,10 @@
+2004-04-30  Andrew Cagney  <cagney@redhat.com>
+
+       * gdbarch.sh (BELIEVE_PCC_PROMOTION_TYPE): Delete.
+       * gdbarch.h, gdbarch.c: Re-generate.
+       * stabsread.c (define_symbol): Delete BELIEVE_PCC_PROMOTION_TYPE
+       code.
+
 2004-04-30  Andrew Cagney  <cagney@redhat.com>
 
        * gdb-events.sh (selected_thread_changed)
index 66b97814d86516c50cc628c0f19ecc80a2ee561f..31b63d5043c11f7fb6f3d3a15a86d50cd2128a70 100644 (file)
@@ -1,3 +1,8 @@
+2004-04-30  Andrew Cagney  <cagney@redhat.com>
+
+       * gdbint.texinfo (Target Architecture Definition): Delete
+       documentation for BELIEVE_PCC_PROMOTION_TYPE, no longer defined.
+
 2004-04-30  Orjan Friberg  <orjanf@axis.com>
 
        * observer.texi (GDB Observers): Correct spelling.
index 2d17a348c7ab56e3b200ceb456c50105f10677b3..72d415e72f100532baf7dbef66c4ebe7c1a37fc2 100644 (file)
@@ -2926,12 +2926,6 @@ Define if the compiler promotes a @code{short} or @code{char}
 parameter to an @code{int}, but still reports the parameter as its
 original type, rather than the promoted type.
 
-@item BELIEVE_PCC_PROMOTION_TYPE
-@findex BELIEVE_PCC_PROMOTION_TYPE
-Define this if @value{GDBN} should believe the type of a @code{short}
-argument when compiled by @code{pcc}, but look within a full int space to get
-its value.  Only defined for Sun-3 at present.
-
 @item BITS_BIG_ENDIAN
 @findex BITS_BIG_ENDIAN
 Define this if the numbering of bits in the targets does @strong{not} match the
index ff1d687dec1a210db9fd4c2db1510d0c9bc05190..0f68e84a8eb6e65374476343bb0effb0dd435458 100644 (file)
@@ -182,7 +182,6 @@ struct gdbarch
   gdbarch_deprecated_pc_in_call_dummy_ftype *deprecated_pc_in_call_dummy;
   gdbarch_deprecated_init_frame_pc_ftype *deprecated_init_frame_pc;
   int believe_pcc_promotion;
-  int believe_pcc_promotion_type;
   gdbarch_deprecated_get_saved_register_ftype *deprecated_get_saved_register;
   gdbarch_deprecated_register_convertible_ftype *deprecated_register_convertible;
   gdbarch_deprecated_register_convert_to_virtual_ftype *deprecated_register_convert_to_virtual;
@@ -347,7 +346,6 @@ struct gdbarch startup_gdbarch =
   deprecated_pc_in_call_dummy,  /* deprecated_pc_in_call_dummy */
   0,  /* deprecated_init_frame_pc */
   0,  /* believe_pcc_promotion */
-  0,  /* believe_pcc_promotion_type */
   0,  /* deprecated_get_saved_register */
   0,  /* deprecated_register_convertible */
   0,  /* deprecated_register_convert_to_virtual */
@@ -862,14 +860,6 @@ gdbarch_dump (struct gdbarch *current_gdbarch, struct ui_file *file)
                       "gdbarch_dump: BELIEVE_PCC_PROMOTION = %d\n",
                       BELIEVE_PCC_PROMOTION);
 #endif
-#ifdef BELIEVE_PCC_PROMOTION_TYPE
-  fprintf_unfiltered (file,
-                      "gdbarch_dump: BELIEVE_PCC_PROMOTION_TYPE # %s\n",
-                      XSTRING (BELIEVE_PCC_PROMOTION_TYPE));
-  fprintf_unfiltered (file,
-                      "gdbarch_dump: BELIEVE_PCC_PROMOTION_TYPE = %d\n",
-                      BELIEVE_PCC_PROMOTION_TYPE);
-#endif
 #ifdef BREAKPOINT_FROM_PC
   fprintf_unfiltered (file,
                       "gdbarch_dump: %s # %s\n",
@@ -3789,22 +3779,6 @@ set_gdbarch_believe_pcc_promotion (struct gdbarch *gdbarch,
   gdbarch->believe_pcc_promotion = believe_pcc_promotion;
 }
 
-int
-gdbarch_believe_pcc_promotion_type (struct gdbarch *gdbarch)
-{
-  gdb_assert (gdbarch != NULL);
-  if (gdbarch_debug >= 2)
-    fprintf_unfiltered (gdb_stdlog, "gdbarch_believe_pcc_promotion_type called\n");
-  return gdbarch->believe_pcc_promotion_type;
-}
-
-void
-set_gdbarch_believe_pcc_promotion_type (struct gdbarch *gdbarch,
-                                        int believe_pcc_promotion_type)
-{
-  gdbarch->believe_pcc_promotion_type = believe_pcc_promotion_type;
-}
-
 int
 gdbarch_deprecated_get_saved_register_p (struct gdbarch *gdbarch)
 {
index d881eb20810593c875f761a58581ff786bf05c0a..b7dfa8f800563b1ee7863fa0b962354fbf2789fe 100644 (file)
@@ -1137,15 +1137,6 @@ extern void set_gdbarch_believe_pcc_promotion (struct gdbarch *gdbarch, int beli
 #define BELIEVE_PCC_PROMOTION (gdbarch_believe_pcc_promotion (current_gdbarch))
 #endif
 
-extern int gdbarch_believe_pcc_promotion_type (struct gdbarch *gdbarch);
-extern void set_gdbarch_believe_pcc_promotion_type (struct gdbarch *gdbarch, int believe_pcc_promotion_type);
-#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (BELIEVE_PCC_PROMOTION_TYPE)
-#error "Non multi-arch definition of BELIEVE_PCC_PROMOTION_TYPE"
-#endif
-#if !defined (BELIEVE_PCC_PROMOTION_TYPE)
-#define BELIEVE_PCC_PROMOTION_TYPE (gdbarch_believe_pcc_promotion_type (current_gdbarch))
-#endif
-
 #if defined (DEPRECATED_GET_SAVED_REGISTER)
 /* Legacy for systems yet to multi-arch DEPRECATED_GET_SAVED_REGISTER */
 #if !defined (DEPRECATED_GET_SAVED_REGISTER_P)
index e46c64f78905b27be7ba0975b413c5d0ac6f8b41..acb4b9bd2d9635fbc0848e85c5d53ab85cc9b96d 100755 (executable)
@@ -564,7 +564,6 @@ F::DEPRECATED_PC_IN_CALL_DUMMY:int:deprecated_pc_in_call_dummy:CORE_ADDR pc, COR
 F:2:DEPRECATED_INIT_FRAME_PC:CORE_ADDR:deprecated_init_frame_pc:int fromleaf, struct frame_info *prev:fromleaf, prev
 #
 v:2:BELIEVE_PCC_PROMOTION:int:believe_pcc_promotion:::::::
-v::BELIEVE_PCC_PROMOTION_TYPE:int:believe_pcc_promotion_type:::::::
 F:2:DEPRECATED_GET_SAVED_REGISTER:void:deprecated_get_saved_register:char *raw_buffer, int *optimized, CORE_ADDR *addrp, struct frame_info *frame, int regnum, enum lval_type *lval:raw_buffer, optimized, addrp, frame, regnum, lval
 #
 # For register <-> value conversions, replaced by CONVERT_REGISTER_P et.al.
index 07c6fe0b8a23c7da3541f13b5146c7c48c34e660..e91a98090521ef30f0ea70d73158ef76b388f841 100644 (file)
@@ -978,61 +978,17 @@ define_symbol (CORE_ADDR valu, char *string, int desc, int type,
              init_type (TYPE_CODE_INT, TARGET_INT_BIT / TARGET_CHAR_BIT,
                         TYPE_FLAG_UNSIGNED, "unsigned int", NULL);
 
-         if (BELIEVE_PCC_PROMOTION_TYPE)
+         /* If PCC says a parameter is a short or a char, it is
+            really an int.  */
+         if (TYPE_LENGTH (SYMBOL_TYPE (sym)) < TYPE_LENGTH (pcc_promotion_type)
+             && TYPE_CODE (SYMBOL_TYPE (sym)) == TYPE_CODE_INT)
            {
-             /* This is defined on machines (e.g. sparc) where we
-                should believe the type of a PCC 'short' argument,
-                but shouldn't believe the address (the address is the
-                address of the corresponding int).
-
-                My guess is that this correction, as opposed to
-                changing the parameter to an 'int' (as done below,
-                for PCC on most machines), is the right thing to do
-                on all machines, but I don't want to risk breaking
-                something that already works.  On most PCC machines,
-                the sparc problem doesn't come up because the calling
-                function has to zero the top bytes (not knowing
-                whether the called function wants an int or a short),
-                so there is little practical difference between an
-                int and a short (except perhaps what happens when the
-                GDB user types "print short_arg = 0x10000;").
-
-                Hacked for SunOS 4.1 by gnu@cygnus.com.  In 4.1, the
-                compiler actually produces the correct address (we
-                don't need to fix it up).  I made this code adapt so
-                that it will offset the symbol if it was pointing at
-                an int-aligned location and not otherwise.  This way
-                you can use the same gdb for 4.0.x and 4.1 systems.
-
-                If the parameter is shorter than an int, and is
-                integral (e.g. char, short, or unsigned equivalent),
-                and is claimed to be passed on an integer boundary,
-                don't believe it!  Offset the parameter's address to
-                the tail-end of that integer.  */
-
-             if (TYPE_LENGTH (SYMBOL_TYPE (sym)) < TYPE_LENGTH (pcc_promotion_type)
-                 && TYPE_CODE (SYMBOL_TYPE (sym)) == TYPE_CODE_INT
-             && 0 == SYMBOL_VALUE (sym) % TYPE_LENGTH (pcc_promotion_type))
-               {
-                 SYMBOL_VALUE (sym) += TYPE_LENGTH (pcc_promotion_type)
-                   - TYPE_LENGTH (SYMBOL_TYPE (sym));
-               }
-             break;
-           }
-         else
-           {
-             /* If PCC says a parameter is a short or a char,
-                it is really an int.  */
-             if (TYPE_LENGTH (SYMBOL_TYPE (sym)) < TYPE_LENGTH (pcc_promotion_type)
-                 && TYPE_CODE (SYMBOL_TYPE (sym)) == TYPE_CODE_INT)
-               {
-                 SYMBOL_TYPE (sym) =
-                   TYPE_UNSIGNED (SYMBOL_TYPE (sym))
-                   ? pcc_unsigned_promotion_type
-                   : pcc_promotion_type;
-               }
-             break;
+             SYMBOL_TYPE (sym) =
+               TYPE_UNSIGNED (SYMBOL_TYPE (sym))
+               ? pcc_unsigned_promotion_type
+               : pcc_promotion_type;
            }
+         break;
        }
 
     case 'P':