]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Merge from parent branch.
authorDaniel Jacobowitz <drow@false.org>
Wed, 19 Apr 2006 18:30:11 +0000 (18:30 +0000)
committerDaniel Jacobowitz <drow@false.org>
Wed, 19 Apr 2006 18:30:11 +0000 (18:30 +0000)
ChangeLog.csl
gdb/doc/gdb.texinfo
gdb/mt-tdep.c

index 157182f9fcc076311a05b82be2942c2d111b547a..f8cd04c2ce542c8185c0519e487081689ae20ddd 100644 (file)
@@ -1,3 +1,30 @@
+2006-04-19  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       Merge from gdb-csl-20060226-branch:
+
+       2006-04-19  Daniel Jacobowitz  <dan@codesourcery.com>
+       * gdb/doc/gdb.texinfo (Remote configuration): Mention "set remote
+       load-offsets".
+       (General Query Packets): Document qPartInfo.
+
+       2006-04-18  Mark Mitchell  <mark@codesourcery.com>
+       Issue #655
+       * gdb/mt-tdep.c (mt_gdb_regnums): Add ZI2, ZQ2, Ichannel2,
+       Iscramb2, Qscramb2, Qchannel2.
+       (mt_register_name): Likewise.
+       (mt_copro_register_type): Describe ZI2 and ZQ2.
+       
+       2006-04-11  Mark Mitchell  <mark@codesourcery.com>
+       Issue #658
+       * gdb/mt-tdep.c (mt_gdb_regnums): Define
+       MT_COPRO_PSEUDOREG_MAC_REGNUM.
+       (mt_register_name): Use it.
+       (mt_copro_register_type): Likewise.
+       (mt_register_type): Likewise.
+       (mt_pseudo_register_read): Likewise.  Read the MAC register, not
+       the coprocessor register.
+       (mt_pseudo_register_write): Likewise.
+
 2006-04-17  Daniel Jacobowitz  <dan@codesourcery.com>
 
        * gdb/buildsym.c (start_subfile): Handle producer.
index 221a95a2fa962fe66fa1e730007ce7ab7ea81929..12f6b3932eb7917543529e7f8016a81d7a658c09 100644 (file)
@@ -12624,6 +12624,20 @@ packet.
 @item show remote get-thread-local-storage-address
 @kindex show remote get-thread-local-storage-address
 Show the current setting of @samp{qGetTLSAddr} packet usage.
+
+@item set remote load-offsets
+@kindex set remote load-offsets
+@cindex load offsets of remote targets
+This command enables or disables the use of the @samp{qOffsets}
+request packet.  This packet is used to find a relocated downloaded
+image.  @xref{General Query Packets, qOffsets}, for more details about
+this packet.  The default depends on the remote stub's support of this
+packet (@value{GDBN} queries the stub when this packet is first
+required).
+
+@item show remote load-offsets
+@kindex show remote load-offsets
+Show the current setting of @samp{qOffsets} packet usage.
 @end table
 
 @node remote stub
@@ -23267,6 +23281,59 @@ encoded 32 bit mode; @var{threadid} is a hex encoded 64 bit thread ID.
 
 Reply: see @code{remote.c:remote_unpack_thread_info_response()}.
 
+@item qPacketInfo @r{[};@var{feature}@r{]}...
+@cindex supported packets, remote query
+@cindex @samp{qPacketInfo} packet
+Tell the remote target about features supported by @value{GDBN}, and
+query it for features it supports.
+
+No values of @var{feature} are defined yet.  Targets should ignore any
+unknown values for @var{feature}.  Any @value{GDBN} which sends a
+@samp{qPacketInfo} packet supports receiving packets of unlimited
+length.  Values for @var{feature} may be defined in the future to let
+the stub take advantage of new features in @value{GDBN}, e.g.@:
+incompatible improvements in the remote protocol.
+
+The reply is one or more feature responses, or empty if this packet is
+not supported.  Multiple feature responses are separated by semicolons,
+and individual feature responses may not include semicolons.  @value{GDBN}
+will silently ignore unrecognized feature responses, as long as the
+unrecognized response has one of the standard forms.  The standard forms
+are:
+
+@table @samp
+@item @var{name}=@var{value}
+Set a remote communication parameter to the specified value.
+@item @var{name}+
+The remote protocol packet @var{name} is supported.
+@item @var{name}-
+The remote protocol packet @var{name} is not supported.
+@end table
+
+Currently only one communication parameter is supported:
+
+@table @samp
+@item PacketSize=@var{bytes}
+The remote target can accept packets up to at least @var{bytes} in
+length.
+@end table
+
+The name of a packet which can be marked as supported or unsupported
+is the text of the packet in this documentation, up to but not
+including the first punctuation character or variable.  For example, a
+target which supports hardware watchpoints but not hardware
+breakpoints might report @samp{Z0-;Z1-;Z2+;Z3+;Z4+}.  An exception is
+made for @samp{qPart:@var{object}} packets; the name of the packet
+includes the @var{object}, but not the @var{annex}.  Individual
+@samp{qPart} packet types must be reported separately.
+
+Currently, all remote packets which are not mentioned in the response
+will be probed individually, just as if the @samp{qPacketInfo} command
+was not supported.  In the future, some new packets may be added to
+the remote protocol which will be assumed to be unsupported unless
+@samp{qPacketInfo} is supported and the new packet is reported in the
+@samp{qPacketInfo} response.
+
 @item qPart:@var{object}:read:@var{annex}:@var{offset},@var{length}
 @cindex read special object, remote request
 @cindex @samp{qPart} packet
index 99725e73faaefcc6b4b4b23b2b3d21efd1f1f7f5..da77bd88f1d0c9c97241efb6debddc426631ddf5 100644 (file)
@@ -109,6 +109,12 @@ enum mt_gdb_regnums
   MT_OUT_REGNUM,                       /* 16 bits.  */
   MT_EXMAC_REGNUM,             /* 32 bits (8 used).  */
   MT_QCHANNEL_REGNUM,          /* 32 bits.  */
+  MT_ZI2_REGNUM,                /* 16 bits.  */
+  MT_ZQ2_REGNUM,                /* 16 bits.  */
+  MT_CHANNEL2_REGNUM,           /* 32 bits.  */
+  MT_ISCRAMB2_REGNUM,           /* 32 bits.  */
+  MT_QSCRAMB2_REGNUM,           /* 32 bits.  */
+  MT_QCHANNEL2_REGNUM,          /* 32 bits.  */
 
   /* Number of real registers.  */
   MT_NUM_REGS,
@@ -120,7 +126,12 @@ enum mt_gdb_regnums
 
   MT_COPRO_PSEUDOREG_DIM_1 = 2,
   MT_COPRO_PSEUDOREG_DIM_2 = 8,
-  MT_COPRO_PSEUDOREG_REGS = 32,
+  /* The number of pseudo-registers for each coprocessor.  These
+     include the real coprocessor registers, the pseudo-registe for
+     the coprocessor number, and the pseudo-register for the MAC.  */
+  MT_COPRO_PSEUDOREG_REGS = MT_NUM_REGS - MT_NUM_CPU_REGS + 2,
+  /* The register number of the MAC, relative to a given coprocessor.  */
+  MT_COPRO_PSEUDOREG_MAC_REGNUM = MT_COPRO_PSEUDOREG_REGS - 1,
 
   /* Two pseudo-regs ('coprocessor' and 'mac').  */
   MT_NUM_PSEUDO_REGS = 2 + (MT_COPRO_PSEUDOREG_REGS
@@ -144,6 +155,7 @@ mt_register_name (int regnum)
     "cr8", "cr9", "cr10", "cr11", "cr12", "cr13", "cr14", "cr15",
     "bypa", "bypb", "bypc", "flag", "context", "" /* mac.  */ , "z1", "z2",
     "Ichannel", "Iscramb", "Qscramb", "out", "" /* ex-mac.  */ , "Qchannel",
+    "zi2", "zq2", "Ichannel2", "Iscramb2", "Qscramb2", "Qchannel2",
     /* Pseudo-registers.  */
     "coprocessor", "MAC"
   };
@@ -171,7 +183,7 @@ mt_register_name (int regnum)
     dim_1 = ((regnum / MT_COPRO_PSEUDOREG_REGS / MT_COPRO_PSEUDOREG_DIM_2)
             %  MT_COPRO_PSEUDOREG_DIM_1);
     
-    if (index == MT_COPRO_PSEUDOREG_REGS - 1)
+    if (index == MT_COPRO_PSEUDOREG_MAC_REGNUM)
       stub = register_names[MT_MAC_PSEUDOREG_REGNUM];
     else if (index > MT_QCHANNEL_REGNUM - MT_CPR0_REGNUM)
       stub = "";
@@ -208,6 +220,8 @@ mt_copro_register_type (struct gdbarch *arch, int regnum)
     case MT_Z1_REGNUM:
     case MT_Z2_REGNUM:
     case MT_OUT_REGNUM:
+    case MT_ZI2_REGNUM:
+    case MT_ZQ2_REGNUM:
       return builtin_type_int16;
     case MT_EXMAC_REGNUM:
     case MT_MAC_REGNUM:
@@ -219,7 +233,7 @@ mt_copro_register_type (struct gdbarch *arch, int regnum)
     default:
       if (regnum >= MT_CPR0_REGNUM && regnum <= MT_CPR15_REGNUM)
        return builtin_type_int16;
-      else if (regnum == MT_CPR0_REGNUM + MT_COPRO_PSEUDOREG_REGS - 1)
+      else if (regnum == MT_CPR0_REGNUM + MT_COPRO_PSEUDOREG_MAC_REGNUM)
        {
          if (gdbarch_bfd_arch_info (arch)->mach == bfd_mach_mrisc2
              || gdbarch_bfd_arch_info (arch)->mach == bfd_mach_ms2)
@@ -269,7 +283,7 @@ mt_register_type (struct gdbarch *arch, int regnum)
        case MT_MAC_PSEUDOREG_REGNUM:
          return mt_copro_register_type (arch,
                                         MT_CPR0_REGNUM
-                                        + MT_COPRO_PSEUDOREG_REGS - 1);
+                                        + MT_COPRO_PSEUDOREG_MAC_REGNUM);
        default:
          if (regnum >= MT_R0_REGNUM && regnum <= MT_R15_REGNUM)
            return builtin_type_int32;
@@ -530,9 +544,9 @@ mt_pseudo_register_read (struct gdbarch *gdbarch,
       {
        unsigned index = mt_select_coprocessor (gdbarch, regcache, regno);
        
-       if (index == MT_COPRO_PSEUDOREG_REGS - 1)
+       if (index == MT_COPRO_PSEUDOREG_MAC_REGNUM)
          mt_pseudo_register_read (gdbarch, regcache,
-                                  MT_COPRO_PSEUDOREG_REGNUM, buf);
+                                  MT_MAC_PSEUDOREG_REGNUM, buf);
        else if (index < MT_NUM_REGS - MT_CPR0_REGNUM)
          regcache_raw_read (regcache, index + MT_CPR0_REGNUM, buf);
       }
@@ -584,9 +598,9 @@ mt_pseudo_register_write (struct gdbarch *gdbarch,
       {
        unsigned index = mt_select_coprocessor (gdbarch, regcache, regno);
        
-       if (index == MT_COPRO_PSEUDOREG_REGS - 1)
+       if (index == MT_COPRO_PSEUDOREG_MAC_REGNUM)
          mt_pseudo_register_write (gdbarch, regcache,
-                                   MT_COPRO_PSEUDOREG_REGNUM, buf);
+                                   MT_MAC_PSEUDOREG_REGNUM, buf);
        else if (index < MT_NUM_REGS - MT_CPR0_REGNUM)
          regcache_raw_write (regcache, index + MT_CPR0_REGNUM, buf);
       }