Declare Gould configuration obsolete:
authorStan Shebs <shebs@codesourcery.com>
Wed, 10 Feb 1999 21:28:03 +0000 (21:28 +0000)
committerStan Shebs <shebs@codesourcery.com>
Wed, 10 Feb 1999 21:28:03 +0000 (21:28 +0000)
* configure.host, configure.tgt: Comment out Gould configs.
* Makefile.in: Comment out Gould-related actions.
* gould-xdep.c, gould-tdep.c, config/gould/*: Comment out.
* NEWS: Mention obsolete status.
And the first one bites the dust...

gdb/ChangeLog
gdb/Makefile.in
gdb/NEWS
gdb/configure.host
gdb/configure.tgt
gdb/gould-tdep.c
gdb/gould-xdep.c

index 243fd8d..fa2145e 100644 (file)
@@ -1,3 +1,11 @@
+Wed Feb 10 13:17:21 1999  Stan Shebs  <shebs@andros.cygnus.com>
+
+       Declare Gould configuration obsolete:
+       * configure.host, configure.tgt: Comment out Gould configs.
+       * Makefile.in: Comment out Gould-related actions.
+       * gould-xdep.c, gould-tdep.c, config/gould/*: Comment out.
+       * NEWS: Mention obsolete status.
+
 1999-02-09  DJ Delorie  <dj@cygnus.com>
 
        * sparcl-tdep.c: UDP download works in cygwin
index ea3b0a1..da217c4 100644 (file)
@@ -1259,10 +1259,10 @@ gnu-nat.o: process_reply_S.h exc_request_S.h notify_S.h msg_reply_S.h \
 
 go32-xdep.o: go32-xdep.c
 
-gould-tdep.o: gould-tdep.c $(OP_INCLUDE)/np1.h $(defs_h) $(frame_h) \
-       $(gdbcore_h) $(symtab_h)
+# OBSOLETE gould-tdep.o: gould-tdep.c $(OP_INCLUDE)/np1.h $(defs_h) $(frame_h) \
+# OBSOLETE     $(gdbcore_h) $(symtab_h)
 
-gould-xdep.o: gould-xdep.c $(defs_h) $(gdbcore_h) $(inferior_h)
+# OBSOLETE gould-xdep.o: gould-xdep.c $(defs_h) $(gdbcore_h) $(inferior_h)
 
 h8300-tdep.o: h8300-tdep.c $(defs_h) $(frame_h) $(symtab_h)
 
index 1342190..76757ec 100644 (file)
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -14,6 +14,15 @@ M68K Linux                                   m68*-*-linux*
 Fujitsu FR30                                   fr30-*-elf*
 Mitsubishi D30V                                        d30v-*-*
 
+* OBSOLETE configurations
+
+Gould PowerNode, NP1                           np1-*-*, pn-*-*
+
+Configurations that have been declared obsolete will be commented out,
+but the code will be left in place.  If there is no activity to revive
+these configurations before the next release of GDB, the sources will
+be permanently REMOVED.
+
 * Readline 2.2
 
 GDB now uses readline 2.2.
index 4a3bb12..381f6ad 100644 (file)
@@ -16,7 +16,7 @@ hppa*)                        gdb_host_cpu=pa ;;
 i[3456]86*)            gdb_host_cpu=i386 ;;
 m68*)                  gdb_host_cpu=m68k ;;
 m88*)                  gdb_host_cpu=m88k ;;
-np1)                   gdb_host_cpu=gould ;;
+# OBSOLETE np1)                        gdb_host_cpu=gould ;;
 pyramid)               gdb_host_cpu=pyr ;;
 powerpc*)              gdb_host_cpu=powerpc ;;
 sparc64)               gdb_host_cpu=sparc ;;
@@ -119,7 +119,7 @@ mips-*-riscos*)             gdb_host=riscos ;;
 
 none-*-*)              gdb_host=none ;;
 
-np1-*-*)               gdb_host=np1 ;;
+# OBSOLETE np1-*-*)            gdb_host=np1 ;;
 
 ns32k-*-mach3*)                gdb_host=ns32km3 ;;
 ns32k-*-netbsd*)       gdb_host=nbsd ;;
@@ -131,7 +131,7 @@ powerpcle-*-cygwin*)        gdb_host=cygwin ;;
 powerpcle-*-solaris*)  gdb_host=solaris ;;
 powerpc-*-linux*)      gdb_host=linux ;;
 
-pn-*-*)                        gdb_host=pn ;;
+# OBSOLETE pn-*-*)                     gdb_host=pn ;;
 
 pyramid-*-*)           gdb_host=pyramid ;;
 
index 1bce5fc..51e7cf0 100644 (file)
@@ -19,9 +19,9 @@ i[3456]86*)           gdb_target_cpu=i386 ;;
 m68*)                  gdb_target_cpu=m68k ;;
 m88*)                  gdb_target_cpu=m88k ;;
 mips*)                 gdb_target_cpu=mips ;;
-np1)                   gdb_target_cpu=gould ;;
+# OBSOLETE np1)                        gdb_target_cpu=gould ;;
 powerpc*)              gdb_target_cpu=powerpc ;;
-pn)                    gdb_target_cpu=gould ;;
+# OBSOLETE pn)                 gdb_target_cpu=gould ;;
 pyramid)               gdb_target_cpu=pyr ;;
 sparc*)                        gdb_target_cpu=sparc ;;
 thumb*)                        gdb_target_cpu=arm ;;
@@ -232,14 +232,15 @@ mn10300-*-*)              gdb_target=mn10300 ;;
 
 none-*-*)              gdb_target=none ;;
 
-np1-*-*)               gdb_target=np1 ;;
+# OBSOLETE np1-*-*)            gdb_target=np1 ;;
 
 ns32k-*-mach3*)                gdb_target=ns32km3 ;;
 ns32k-*-netbsd*)       gdb_target=nbsd ;;
 ns32k-utek-sysv*)      gdb_target=merlin ;;
 ns32k-utek-*)          gdb_target=umax ;;
 
-pn-*-*)                        gdb_target=pn ;;
+# OBSOLETE pn-*-*)                     gdb_target=pn ;;
+
 powerpc-*-macos*)      gdb_target=macos ;;
 powerpc-*-netware*)    gdb_target=ppc-nw
                        configdirs="${configdirs} nlm" ;;
index 8cd2ee5..1916cc2 100644 (file)
-/* GOULD RISC target-dependent code for GDB, the GNU debugger.
-   Copyright 1986, 1987, 1989, 1991 Free Software Foundation, Inc.
-
-This file is part of GDB.
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-
-#include "defs.h"
-#include "symtab.h"
-#include "frame.h"
-#include "gdbcore.h"
-#if defined GOULD_PN
-#include "opcode/pn.h"
-#else
-#include "opcode/np1.h"
-#endif
-
-/* GOULD RISC instructions are never longer than this many bytes.  */
-#define MAXLEN 4
-
-/* Number of elements in the opcode table.  */
-#define NOPCODES (sizeof gld_opcodes / sizeof gld_opcodes[0])
-
-int
-gould_frame_chain_valid (chain, fi)
-     CORE_ADDR chain;
-     struct frame_info *fi;      /* not used here */
-{
-  return (chain != 0 && chain != (thisframe)->frame);
-}
-
-/* Both gcc and cc return small structs in registers (i.e. in GDB
-   terminology, small structs don't use the struct return convention).  */
-int
-gould_use_struct_convention (gcc_p, type)
-     int gcc_p;
-     struct type *type;
-{
-  return (TYPE_LENGTH(type) > 8);
-}
-
-
-\f
-/* Print the GOULD instruction at address MEMADDR in debugged memory,
-   on STREAM.  Returns length of the instruction, in bytes.  */
-
-int
-gould_print_insn (memaddr, stream)
-     CORE_ADDR memaddr;
-     FILE *stream;
-{
-       unsigned char buffer[MAXLEN];
-       register int i;
-       register char *d;
-       register int bestmask;
-       unsigned best;
-       int temp, index, bestlen;
-
-       read_memory (memaddr, buffer, MAXLEN);
-
-       bestmask = 0;
-       index = -1;
-       best = 0xffffffff;
-       for (i = 0; i < NOPCODES; i++)
-       {
-               register unsigned int opcode = gld_opcodes[i].opcode;
-               register unsigned int mask = gld_opcodes[i].mask;
-               register unsigned int len = gld_opcodes[i].length;
-               register unsigned int test;
-
-               /* Get possible opcode bytes into integer */
-               test = buffer[0] << 24;
-               test |= buffer[1] << 16;
-               test |= buffer[2] << 8;
-               test |= buffer[3];
-
-               /* Mask with opcode and see if match */
-               if ((opcode & mask) == (test & mask))
-               {
-                       /* See if second or third match */
-                       if (index >= 0)
-                       {
-                               /* Take new one if it looks good */
-                               if (bestlen == MAXLEN && len == MAXLEN)
-                               {
-                                       /* See if lower bits matched */
-                                       if (((bestmask & 3) == 0) &&
-                                           ((mask & 3) != 0))
-                                       {
-                                               bestmask = mask;
-                                               bestlen = len;
-                                               best = test;
-                                               index = i;
-                                       }
-                               }
-                       }
-                       else
-                       {
-                               /* First match, save it */
-                               bestmask = mask;
-                               bestlen = len;
-                               best = test;
-                               index = i;
-                       }
-               }
-       }
-
-       /* Handle undefined instructions.  */
-       if (index < 0)
-       {
-               fprintf (stream, "undefined   0%o",(buffer[0]<<8)+buffer[1]);
-               return 2;
-       }
-
-       /* Print instruction name */
-       fprintf (stream, "%-12s", gld_opcodes[index].name);
-
-       /* Adjust if short instruction */
-       if (gld_opcodes[index].length < 4)
-       {
-               best >>= 16;
-               i = 0;
-       }
-       else
-       {
-               i = 16;
-       }
-
-       /* Dump out instruction arguments */
-       for (d = gld_opcodes[index].args; *d; ++d)
-       {
-           switch (*d)
-           {
-               case 'f':
-                   fprintf (stream, "%d",  (best >> (7 + i)) & 7);
-                   break;
-               case 'r':
-                   fprintf (stream, "r%d", (best >> (7 + i)) & 7);
-                   break;
-               case 'R':
-                   fprintf (stream, "r%d", (best >> (4 + i)) & 7);
-                   break;
-               case 'b':
-                   fprintf (stream, "b%d", (best >> (7 + i)) & 7);
-                   break;
-               case 'B':
-                   fprintf (stream, "b%d", (best >> (4 + i)) & 7);
-                   break;
-               case 'v':
-                   fprintf (stream, "b%d", (best >> (7 + i)) & 7);
-                   break;
-               case 'V':
-                   fprintf (stream, "b%d", (best >> (4 + i)) & 7);
-                   break;
-               case 'X':
-                   temp = (best >> 20) & 7;
-                   if (temp)
-                       fprintf (stream, "r%d", temp);
-                   else
-                       putc ('0', stream);
-                   break;
-               case 'A':
-                   temp = (best >> 16) & 7;
-                   if (temp)
-                       fprintf (stream, "(b%d)", temp);
-                   break;
-               case 'S':
-                   fprintf (stream, "#%d", best & 0x1f);
-                   break;
-               case 'I':
-                   fprintf (stream, "#%x", best & 0xffff);
-                   break;
-               case 'O':
-                   fprintf (stream, "%x", best & 0xffff);
-                   break;
-               case 'h':
-                   fprintf (stream, "%d", best & 0xfffe);
-                   break;
-               case 'd':
-                   fprintf (stream, "%d", best & 0xfffc);
-                   break;
-               case 'T':
-                   fprintf (stream, "%d", (best >> 8) & 0xff);
-                   break;
-               case 'N':
-                   fprintf (stream, "%d", best & 0xff);
-                   break;
-               default:
-                   putc (*d, stream);
-                   break;
-           }
-       }
-
-       /* Return length of instruction */
-       return (gld_opcodes[index].length);
-}
-
-/*
- * Find the number of arguments to a function.
- */
-findarg(frame)
-       struct frame_info *frame;
-{
-       register struct symbol *func;
-       register unsigned pc;
-
-#ifdef notdef
-       /* find starting address of frame function */
-       pc = get_pc_function_start (frame->pc);
-
-       /* find function symbol info */
-       func = find_pc_function (pc);
-
-       /* call blockframe code to look for match */
-       if (func != NULL)
-                return (func->value.block->nsyms / sizeof(int));
-#endif
-
-        return (-1);
-} 
-
-/*
- * In the case of the NPL, the frame's norminal address is Br2 and the 
- * previous routines frame is up the stack X bytes.  Finding out what
- * 'X' is can be tricky.
- *
- *    1.) stored in the code function header xA(Br1).
- *    2.) must be careful of recurssion.
- */
-CORE_ADDR
-findframe(thisframe)
-    struct frame_info *thisframe;
-{
-    register CORE_ADDR pointer;
-    CORE_ADDR framechain();
-#if 0    
-    struct frame_info *frame;
-
-    /* Setup toplevel frame structure */
-    frame->pc = read_pc();
-    frame->next_frame = 0;
-    frame->frame = read_register (SP_REGNUM);  /* Br2 */
-
-    /* Search for this frame (start at current Br2) */
-    do
-    {
-       pointer = framechain(frame);
-       frame->next_frame = frame->frame;
-       frame->frame = pointer;
-       frame->pc = FRAME_SAVED_PC(frame);
-    }
-    while (frame->next_frame != thisframe);
-#endif
-
-    pointer = framechain (thisframe);
-
-    /* stop gap for now, end at __base3 */
-    if (thisframe->pc == 0)
-       return 0;
-
-    return pointer;
-}
-
-/*
- * Gdb front-end and internal framechain routine.
- * Go back up stack one level.  Tricky...
- */
-CORE_ADDR
-framechain(frame)
-    register struct frame_info *frame;
-{
-    register CORE_ADDR func, prevsp;
-    register unsigned value;
-
-    /* Get real function start address from internal frame address */
-    func = get_pc_function_start(frame->pc);
-
-    /* If no stack given, read register Br1 "(sp)" */
-    if (!frame->frame)
-       prevsp = read_register (SP_REGNUM);
-    else
-       prevsp = frame->frame;
-
-    /* Check function header, case #2 */
-    value = read_memory_integer (func, 4);
-    if (value)
-    {
-       /* 32bit call push value stored in function header */
-       prevsp += value;
-    }
-    else
-    {
-       /* read half-word from suabr at start of function */
-       prevsp += read_memory_integer (func + 10, 2);
-    }
-
-    return (prevsp);
-}
+/* OBSOLETE /* GOULD RISC target-dependent code for GDB, the GNU debugger. */
+/* OBSOLETE    Copyright 1986, 1987, 1989, 1991 Free Software Foundation, Inc. */
+/* OBSOLETE  */
+/* OBSOLETE This file is part of GDB. */
+/* OBSOLETE  */
+/* OBSOLETE This program is free software; you can redistribute it and/or modify */
+/* OBSOLETE it under the terms of the GNU General Public License as published by */
+/* OBSOLETE the Free Software Foundation; either version 2 of the License, or */
+/* OBSOLETE (at your option) any later version. */
+/* OBSOLETE  */
+/* OBSOLETE This program is distributed in the hope that it will be useful, */
+/* OBSOLETE but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* OBSOLETE MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the */
+/* OBSOLETE GNU General Public License for more details. */
+/* OBSOLETE  */
+/* OBSOLETE You should have received a copy of the GNU General Public License */
+/* OBSOLETE along with this program; if not, write to the Free Software */
+/* OBSOLETE Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  *x/ */
+/* OBSOLETE  */
+/* OBSOLETE #include "defs.h" */
+/* OBSOLETE #include "symtab.h" */
+/* OBSOLETE #include "frame.h" */
+/* OBSOLETE #include "gdbcore.h" */
+/* OBSOLETE #if defined GOULD_PN */
+/* OBSOLETE #include "opcode/pn.h" */
+/* OBSOLETE #else */
+/* OBSOLETE #include "opcode/np1.h" */
+/* OBSOLETE #endif */
+/* OBSOLETE  */
+/* OBSOLETE /* GOULD RISC instructions are never longer than this many bytes.  *x/ */
+/* OBSOLETE #define MAXLEN 4 */
+/* OBSOLETE  */
+/* OBSOLETE /* Number of elements in the opcode table.  *x/ */
+/* OBSOLETE #define NOPCODES (sizeof gld_opcodes / sizeof gld_opcodes[0]) */
+/* OBSOLETE  */
+/* OBSOLETE int */
+/* OBSOLETE gould_frame_chain_valid (chain, fi) */
+/* OBSOLETE      CORE_ADDR chain; */
+/* OBSOLETE      struct frame_info *fi;      /* not used here *x/ */
+/* OBSOLETE { */
+/* OBSOLETE   return (chain != 0 && chain != (thisframe)->frame); */
+/* OBSOLETE } */
+/* OBSOLETE  */
+/* OBSOLETE /* Both gcc and cc return small structs in registers (i.e. in GDB */
+/* OBSOLETE    terminology, small structs don't use the struct return convention).  *x/ */
+/* OBSOLETE int */
+/* OBSOLETE gould_use_struct_convention (gcc_p, type) */
+/* OBSOLETE      int gcc_p; */
+/* OBSOLETE      struct type *type; */
+/* OBSOLETE { */
+/* OBSOLETE   return (TYPE_LENGTH(type) > 8); */
+/* OBSOLETE } */
+/* OBSOLETE  */
+/* OBSOLETE  */
+/* OBSOLETE \f */
+/* OBSOLETE /* Print the GOULD instruction at address MEMADDR in debugged memory, */
+/* OBSOLETE    on STREAM.  Returns length of the instruction, in bytes.  *x/ */
+/* OBSOLETE  */
+/* OBSOLETE int */
+/* OBSOLETE gould_print_insn (memaddr, stream) */
+/* OBSOLETE      CORE_ADDR memaddr; */
+/* OBSOLETE      FILE *stream; */
+/* OBSOLETE { */
+/* OBSOLETE    unsigned char buffer[MAXLEN]; */
+/* OBSOLETE    register int i; */
+/* OBSOLETE    register char *d; */
+/* OBSOLETE    register int bestmask; */
+/* OBSOLETE    unsigned best; */
+/* OBSOLETE    int temp, index, bestlen; */
+/* OBSOLETE  */
+/* OBSOLETE    read_memory (memaddr, buffer, MAXLEN); */
+/* OBSOLETE  */
+/* OBSOLETE    bestmask = 0; */
+/* OBSOLETE    index = -1; */
+/* OBSOLETE    best = 0xffffffff; */
+/* OBSOLETE    for (i = 0; i < NOPCODES; i++) */
+/* OBSOLETE    { */
+/* OBSOLETE            register unsigned int opcode = gld_opcodes[i].opcode; */
+/* OBSOLETE            register unsigned int mask = gld_opcodes[i].mask; */
+/* OBSOLETE            register unsigned int len = gld_opcodes[i].length; */
+/* OBSOLETE            register unsigned int test; */
+/* OBSOLETE  */
+/* OBSOLETE            /* Get possible opcode bytes into integer *x/ */
+/* OBSOLETE            test = buffer[0] << 24; */
+/* OBSOLETE            test |= buffer[1] << 16; */
+/* OBSOLETE            test |= buffer[2] << 8; */
+/* OBSOLETE            test |= buffer[3]; */
+/* OBSOLETE  */
+/* OBSOLETE            /* Mask with opcode and see if match *x/ */
+/* OBSOLETE            if ((opcode & mask) == (test & mask)) */
+/* OBSOLETE            { */
+/* OBSOLETE                    /* See if second or third match *x/ */
+/* OBSOLETE                    if (index >= 0) */
+/* OBSOLETE                    { */
+/* OBSOLETE                            /* Take new one if it looks good *x/ */
+/* OBSOLETE                            if (bestlen == MAXLEN && len == MAXLEN) */
+/* OBSOLETE                            { */
+/* OBSOLETE                                    /* See if lower bits matched *x/ */
+/* OBSOLETE                                    if (((bestmask & 3) == 0) && */
+/* OBSOLETE                                        ((mask & 3) != 0)) */
+/* OBSOLETE                                    { */
+/* OBSOLETE                                            bestmask = mask; */
+/* OBSOLETE                                            bestlen = len; */
+/* OBSOLETE                                            best = test; */
+/* OBSOLETE                                            index = i; */
+/* OBSOLETE                                    } */
+/* OBSOLETE                            } */
+/* OBSOLETE                    } */
+/* OBSOLETE                    else */
+/* OBSOLETE                    { */
+/* OBSOLETE                            /* First match, save it *x/ */
+/* OBSOLETE                            bestmask = mask; */
+/* OBSOLETE                            bestlen = len; */
+/* OBSOLETE                            best = test; */
+/* OBSOLETE                            index = i; */
+/* OBSOLETE                    } */
+/* OBSOLETE            } */
+/* OBSOLETE    } */
+/* OBSOLETE  */
+/* OBSOLETE    /* Handle undefined instructions.  *x/ */
+/* OBSOLETE    if (index < 0) */
+/* OBSOLETE    { */
+/* OBSOLETE            fprintf (stream, "undefined   0%o",(buffer[0]<<8)+buffer[1]); */
+/* OBSOLETE            return 2; */
+/* OBSOLETE    } */
+/* OBSOLETE  */
+/* OBSOLETE    /* Print instruction name *x/ */
+/* OBSOLETE    fprintf (stream, "%-12s", gld_opcodes[index].name); */
+/* OBSOLETE  */
+/* OBSOLETE    /* Adjust if short instruction *x/ */
+/* OBSOLETE    if (gld_opcodes[index].length < 4) */
+/* OBSOLETE    { */
+/* OBSOLETE            best >>= 16; */
+/* OBSOLETE            i = 0; */
+/* OBSOLETE    } */
+/* OBSOLETE    else */
+/* OBSOLETE    { */
+/* OBSOLETE            i = 16; */
+/* OBSOLETE    } */
+/* OBSOLETE  */
+/* OBSOLETE    /* Dump out instruction arguments *x/ */
+/* OBSOLETE    for (d = gld_opcodes[index].args; *d; ++d) */
+/* OBSOLETE    { */
+/* OBSOLETE        switch (*d) */
+/* OBSOLETE        { */
+/* OBSOLETE            case 'f': */
+/* OBSOLETE                fprintf (stream, "%d",  (best >> (7 + i)) & 7); */
+/* OBSOLETE                break; */
+/* OBSOLETE            case 'r': */
+/* OBSOLETE                fprintf (stream, "r%d", (best >> (7 + i)) & 7); */
+/* OBSOLETE                break; */
+/* OBSOLETE            case 'R': */
+/* OBSOLETE                fprintf (stream, "r%d", (best >> (4 + i)) & 7); */
+/* OBSOLETE                break; */
+/* OBSOLETE            case 'b': */
+/* OBSOLETE                fprintf (stream, "b%d", (best >> (7 + i)) & 7); */
+/* OBSOLETE                break; */
+/* OBSOLETE            case 'B': */
+/* OBSOLETE                fprintf (stream, "b%d", (best >> (4 + i)) & 7); */
+/* OBSOLETE                break; */
+/* OBSOLETE            case 'v': */
+/* OBSOLETE                fprintf (stream, "b%d", (best >> (7 + i)) & 7); */
+/* OBSOLETE                break; */
+/* OBSOLETE            case 'V': */
+/* OBSOLETE                fprintf (stream, "b%d", (best >> (4 + i)) & 7); */
+/* OBSOLETE                break; */
+/* OBSOLETE            case 'X': */
+/* OBSOLETE                temp = (best >> 20) & 7; */
+/* OBSOLETE                if (temp) */
+/* OBSOLETE                    fprintf (stream, "r%d", temp); */
+/* OBSOLETE                else */
+/* OBSOLETE                    putc ('0', stream); */
+/* OBSOLETE                break; */
+/* OBSOLETE            case 'A': */
+/* OBSOLETE                temp = (best >> 16) & 7; */
+/* OBSOLETE                if (temp) */
+/* OBSOLETE                    fprintf (stream, "(b%d)", temp); */
+/* OBSOLETE                break; */
+/* OBSOLETE            case 'S': */
+/* OBSOLETE                fprintf (stream, "#%d", best & 0x1f); */
+/* OBSOLETE                break; */
+/* OBSOLETE            case 'I': */
+/* OBSOLETE                fprintf (stream, "#%x", best & 0xffff); */
+/* OBSOLETE                break; */
+/* OBSOLETE            case 'O': */
+/* OBSOLETE                fprintf (stream, "%x", best & 0xffff); */
+/* OBSOLETE                break; */
+/* OBSOLETE            case 'h': */
+/* OBSOLETE                fprintf (stream, "%d", best & 0xfffe); */
+/* OBSOLETE                break; */
+/* OBSOLETE            case 'd': */
+/* OBSOLETE                fprintf (stream, "%d", best & 0xfffc); */
+/* OBSOLETE                break; */
+/* OBSOLETE            case 'T': */
+/* OBSOLETE                fprintf (stream, "%d", (best >> 8) & 0xff); */
+/* OBSOLETE                break; */
+/* OBSOLETE            case 'N': */
+/* OBSOLETE                fprintf (stream, "%d", best & 0xff); */
+/* OBSOLETE                break; */
+/* OBSOLETE            default: */
+/* OBSOLETE                putc (*d, stream); */
+/* OBSOLETE                break; */
+/* OBSOLETE        } */
+/* OBSOLETE    } */
+/* OBSOLETE  */
+/* OBSOLETE    /* Return length of instruction *x/ */
+/* OBSOLETE    return (gld_opcodes[index].length); */
+/* OBSOLETE } */
+/* OBSOLETE  */
+/* OBSOLETE /* */
+/* OBSOLETE  * Find the number of arguments to a function. */
+/* OBSOLETE  *x/ */
+/* OBSOLETE findarg(frame) */
+/* OBSOLETE    struct frame_info *frame; */
+/* OBSOLETE { */
+/* OBSOLETE    register struct symbol *func; */
+/* OBSOLETE    register unsigned pc; */
+/* OBSOLETE  */
+/* OBSOLETE #ifdef notdef */
+/* OBSOLETE    /* find starting address of frame function *x/ */
+/* OBSOLETE    pc = get_pc_function_start (frame->pc); */
+/* OBSOLETE  */
+/* OBSOLETE    /* find function symbol info *x/ */
+/* OBSOLETE    func = find_pc_function (pc); */
+/* OBSOLETE  */
+/* OBSOLETE    /* call blockframe code to look for match *x/ */
+/* OBSOLETE    if (func != NULL) */
+/* OBSOLETE                 return (func->value.block->nsyms / sizeof(int)); */
+/* OBSOLETE #endif */
+/* OBSOLETE  */
+/* OBSOLETE         return (-1); */
+/* OBSOLETE }  */
+/* OBSOLETE  */
+/* OBSOLETE /* */
+/* OBSOLETE  * In the case of the NPL, the frame's norminal address is Br2 and the  */
+/* OBSOLETE  * previous routines frame is up the stack X bytes.  Finding out what */
+/* OBSOLETE  * 'X' is can be tricky. */
+/* OBSOLETE  * */
+/* OBSOLETE  *    1.) stored in the code function header xA(Br1). */
+/* OBSOLETE  *    2.) must be careful of recurssion. */
+/* OBSOLETE  *x/ */
+/* OBSOLETE CORE_ADDR */
+/* OBSOLETE findframe(thisframe) */
+/* OBSOLETE     struct frame_info *thisframe; */
+/* OBSOLETE { */
+/* OBSOLETE     register CORE_ADDR pointer; */
+/* OBSOLETE     CORE_ADDR framechain(); */
+/* OBSOLETE #if 0     */
+/* OBSOLETE     struct frame_info *frame; */
+/* OBSOLETE  */
+/* OBSOLETE     /* Setup toplevel frame structure *x/ */
+/* OBSOLETE     frame->pc = read_pc(); */
+/* OBSOLETE     frame->next_frame = 0; */
+/* OBSOLETE     frame->frame = read_register (SP_REGNUM);      /* Br2 *x/ */
+/* OBSOLETE  */
+/* OBSOLETE     /* Search for this frame (start at current Br2) *x/ */
+/* OBSOLETE     do */
+/* OBSOLETE     { */
+/* OBSOLETE    pointer = framechain(frame); */
+/* OBSOLETE    frame->next_frame = frame->frame; */
+/* OBSOLETE    frame->frame = pointer; */
+/* OBSOLETE    frame->pc = FRAME_SAVED_PC(frame); */
+/* OBSOLETE     } */
+/* OBSOLETE     while (frame->next_frame != thisframe); */
+/* OBSOLETE #endif */
+/* OBSOLETE  */
+/* OBSOLETE     pointer = framechain (thisframe); */
+/* OBSOLETE  */
+/* OBSOLETE     /* stop gap for now, end at __base3 *x/ */
+/* OBSOLETE     if (thisframe->pc == 0) */
+/* OBSOLETE    return 0; */
+/* OBSOLETE  */
+/* OBSOLETE     return pointer; */
+/* OBSOLETE } */
+/* OBSOLETE  */
+/* OBSOLETE /* */
+/* OBSOLETE  * Gdb front-end and internal framechain routine. */
+/* OBSOLETE  * Go back up stack one level.  Tricky... */
+/* OBSOLETE  *x/ */
+/* OBSOLETE CORE_ADDR */
+/* OBSOLETE framechain(frame) */
+/* OBSOLETE     register struct frame_info *frame; */
+/* OBSOLETE { */
+/* OBSOLETE     register CORE_ADDR func, prevsp; */
+/* OBSOLETE     register unsigned value; */
+/* OBSOLETE  */
+/* OBSOLETE     /* Get real function start address from internal frame address *x/ */
+/* OBSOLETE     func = get_pc_function_start(frame->pc); */
+/* OBSOLETE  */
+/* OBSOLETE     /* If no stack given, read register Br1 "(sp)" *x/ */
+/* OBSOLETE     if (!frame->frame) */
+/* OBSOLETE    prevsp = read_register (SP_REGNUM); */
+/* OBSOLETE     else */
+/* OBSOLETE    prevsp = frame->frame; */
+/* OBSOLETE  */
+/* OBSOLETE     /* Check function header, case #2 *x/ */
+/* OBSOLETE     value = read_memory_integer (func, 4); */
+/* OBSOLETE     if (value) */
+/* OBSOLETE     { */
+/* OBSOLETE    /* 32bit call push value stored in function header *x/ */
+/* OBSOLETE    prevsp += value; */
+/* OBSOLETE     } */
+/* OBSOLETE     else */
+/* OBSOLETE     { */
+/* OBSOLETE    /* read half-word from suabr at start of function *x/ */
+/* OBSOLETE    prevsp += read_memory_integer (func + 10, 2); */
+/* OBSOLETE     } */
+/* OBSOLETE  */
+/* OBSOLETE     return (prevsp); */
+/* OBSOLETE } */
index bf2c33a..904758f 100644 (file)
-/* Low level interface to ptrace, for GDB when running under Unix.
-   Copyright (C) 1986, 1987, 1989, 1991 Free Software Foundation, Inc.
-
-This file is part of GDB.
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-
-#include "defs.h"
-#include "frame.h"
-#include "inferior.h"
-
-#include <sys/param.h>
-#include <sys/dir.h>
-#include <signal.h>
-#include <sys/user.h>
-#include <sys/ioctl.h>
-#include <fcntl.h>
-
-#include "gdbcore.h"
-
-#include <sys/file.h>
-#include "gdb_stat.h"
-
-\f
-/* Work with core dump and executable files, for GDB. 
-   This code would be in corefile.c if it weren't machine-dependent. */
-
-void
-core_file_command (filename, from_tty)
-     char *filename;
-     int from_tty;
-{
-  int val;
-  extern char registers[];
-
-  /* Discard all vestiges of any previous core file
-     and mark data and stack spaces as empty.  */
-
-  if (corefile)
-    free (corefile);
-  corefile = 0;
-
-  if (corechan >= 0)
-    close (corechan);
-  corechan = -1;
-
-  data_start = 0;
-  data_end = 0;
-  stack_start = STACK_END_ADDR;
-  stack_end = STACK_END_ADDR;
-
-  /* Now, if a new core file was specified, open it and digest it.  */
-
-  if (filename)
-    {
-      filename = tilde_expand (filename);
-      make_cleanup (free, filename);
-      
-      if (have_inferior_p ())
-       error ("To look at a core file, you must kill the program with \"kill\".");
-      corechan = open (filename, O_RDONLY, 0);
-      if (corechan < 0)
-       perror_with_name (filename);
-      /* 4.2-style (and perhaps also sysV-style) core dump file.  */
-      {
-       struct user u;
-       int reg_offset;
-
-       val = myread (corechan, &u, sizeof u);
-       if (val < 0)
-         perror_with_name (filename);
-       data_start = exec_data_start;
-
-       data_end = data_start + NBPG * u.u_dsize;
-       stack_start = stack_end - NBPG * u.u_ssize;
-       data_offset = NBPG * UPAGES;
-       stack_offset = NBPG * (UPAGES + u.u_dsize);
-       reg_offset = (int) u.u_ar0 - KERNEL_U_ADDR;
-
-       /* I don't know where to find this info.
-          So, for now, mark it as not available.  */
-       core_aouthdr.a_magic = 0;
-
-       /* Read the register values out of the core file and store
-          them where `read_register' will find them.  */
-
-       {
-         register int regno;
-
-         for (regno = 0; regno < NUM_REGS; regno++)
-           {
-             char buf[MAX_REGISTER_RAW_SIZE];
-
-             val = lseek (corechan, register_addr (regno, reg_offset), 0);
-             if (val < 0)
-               perror_with_name (filename);
-
-             val = myread (corechan, buf, sizeof buf);
-             if (val < 0)
-               perror_with_name (filename);
-             supply_register (regno, buf);
-           }
-       }
-      }
-      if (filename[0] == '/')
-       corefile = savestring (filename, strlen (filename));
-      else
-       {
-         corefile = concat (current_directory, "/", filename, NULL);
-       }
-
-      flush_cached_frames ();
-      select_frame (get_current_frame (), 0);
-      validate_files ();
-    }
-  else if (from_tty)
-    printf ("No core file now.\n");
-}
+/* OBSOLETE /* Low level interface to ptrace, for GDB when running under Unix. */
+/* OBSOLETE    Copyright (C) 1986, 1987, 1989, 1991 Free Software Foundation, Inc. */
+/* OBSOLETE  */
+/* OBSOLETE This file is part of GDB. */
+/* OBSOLETE  */
+/* OBSOLETE This program is free software; you can redistribute it and/or modify */
+/* OBSOLETE it under the terms of the GNU General Public License as published by */
+/* OBSOLETE the Free Software Foundation; either version 2 of the License, or */
+/* OBSOLETE (at your option) any later version. */
+/* OBSOLETE  */
+/* OBSOLETE This program is distributed in the hope that it will be useful, */
+/* OBSOLETE but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* OBSOLETE MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the */
+/* OBSOLETE GNU General Public License for more details. */
+/* OBSOLETE  */
+/* OBSOLETE You should have received a copy of the GNU General Public License */
+/* OBSOLETE along with this program; if not, write to the Free Software */
+/* OBSOLETE Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  *x/ */
+/* OBSOLETE  */
+/* OBSOLETE #include "defs.h" */
+/* OBSOLETE #include "frame.h" */
+/* OBSOLETE #include "inferior.h" */
+/* OBSOLETE  */
+/* OBSOLETE #include <sys/param.h> */
+/* OBSOLETE #include <sys/dir.h> */
+/* OBSOLETE #include <signal.h> */
+/* OBSOLETE #include <sys/user.h> */
+/* OBSOLETE #include <sys/ioctl.h> */
+/* OBSOLETE #include <fcntl.h> */
+/* OBSOLETE  */
+/* OBSOLETE #include "gdbcore.h" */
+/* OBSOLETE  */
+/* OBSOLETE #include <sys/file.h> */
+/* OBSOLETE #include "gdb_stat.h" */
+/* OBSOLETE  */
+/* OBSOLETE \f */
+/* OBSOLETE /* Work with core dump and executable files, for GDB.  */
+/* OBSOLETE    This code would be in corefile.c if it weren't machine-dependent. *x/ */
+/* OBSOLETE  */
+/* OBSOLETE void */
+/* OBSOLETE core_file_command (filename, from_tty) */
+/* OBSOLETE      char *filename; */
+/* OBSOLETE      int from_tty; */
+/* OBSOLETE { */
+/* OBSOLETE   int val; */
+/* OBSOLETE   extern char registers[]; */
+/* OBSOLETE  */
+/* OBSOLETE   /* Discard all vestiges of any previous core file */
+/* OBSOLETE      and mark data and stack spaces as empty.  *x/ */
+/* OBSOLETE  */
+/* OBSOLETE   if (corefile) */
+/* OBSOLETE     free (corefile); */
+/* OBSOLETE   corefile = 0; */
+/* OBSOLETE  */
+/* OBSOLETE   if (corechan >= 0) */
+/* OBSOLETE     close (corechan); */
+/* OBSOLETE   corechan = -1; */
+/* OBSOLETE  */
+/* OBSOLETE   data_start = 0; */
+/* OBSOLETE   data_end = 0; */
+/* OBSOLETE   stack_start = STACK_END_ADDR; */
+/* OBSOLETE   stack_end = STACK_END_ADDR; */
+/* OBSOLETE  */
+/* OBSOLETE   /* Now, if a new core file was specified, open it and digest it.  *x/ */
+/* OBSOLETE  */
+/* OBSOLETE   if (filename) */
+/* OBSOLETE     { */
+/* OBSOLETE       filename = tilde_expand (filename); */
+/* OBSOLETE       make_cleanup (free, filename); */
+/* OBSOLETE        */
+/* OBSOLETE       if (have_inferior_p ()) */
+/* OBSOLETE    error ("To look at a core file, you must kill the program with \"kill\"."); */
+/* OBSOLETE       corechan = open (filename, O_RDONLY, 0); */
+/* OBSOLETE       if (corechan < 0) */
+/* OBSOLETE    perror_with_name (filename); */
+/* OBSOLETE       /* 4.2-style (and perhaps also sysV-style) core dump file.  *x/ */
+/* OBSOLETE       { */
+/* OBSOLETE    struct user u; */
+/* OBSOLETE    int reg_offset; */
+/* OBSOLETE  */
+/* OBSOLETE    val = myread (corechan, &u, sizeof u); */
+/* OBSOLETE    if (val < 0) */
+/* OBSOLETE      perror_with_name (filename); */
+/* OBSOLETE    data_start = exec_data_start; */
+/* OBSOLETE  */
+/* OBSOLETE    data_end = data_start + NBPG * u.u_dsize; */
+/* OBSOLETE    stack_start = stack_end - NBPG * u.u_ssize; */
+/* OBSOLETE    data_offset = NBPG * UPAGES; */
+/* OBSOLETE    stack_offset = NBPG * (UPAGES + u.u_dsize); */
+/* OBSOLETE    reg_offset = (int) u.u_ar0 - KERNEL_U_ADDR; */
+/* OBSOLETE  */
+/* OBSOLETE    /* I don't know where to find this info. */
+/* OBSOLETE       So, for now, mark it as not available.  *x/ */
+/* OBSOLETE    core_aouthdr.a_magic = 0; */
+/* OBSOLETE  */
+/* OBSOLETE    /* Read the register values out of the core file and store */
+/* OBSOLETE       them where `read_register' will find them.  *x/ */
+/* OBSOLETE  */
+/* OBSOLETE    { */
+/* OBSOLETE      register int regno; */
+/* OBSOLETE  */
+/* OBSOLETE      for (regno = 0; regno < NUM_REGS; regno++) */
+/* OBSOLETE        { */
+/* OBSOLETE          char buf[MAX_REGISTER_RAW_SIZE]; */
+/* OBSOLETE  */
+/* OBSOLETE          val = lseek (corechan, register_addr (regno, reg_offset), 0); */
+/* OBSOLETE          if (val < 0) */
+/* OBSOLETE            perror_with_name (filename); */
+/* OBSOLETE  */
+/* OBSOLETE          val = myread (corechan, buf, sizeof buf); */
+/* OBSOLETE          if (val < 0) */
+/* OBSOLETE            perror_with_name (filename); */
+/* OBSOLETE          supply_register (regno, buf); */
+/* OBSOLETE        } */
+/* OBSOLETE    } */
+/* OBSOLETE       } */
+/* OBSOLETE       if (filename[0] == '/') */
+/* OBSOLETE    corefile = savestring (filename, strlen (filename)); */
+/* OBSOLETE       else */
+/* OBSOLETE    { */
+/* OBSOLETE      corefile = concat (current_directory, "/", filename, NULL); */
+/* OBSOLETE    } */
+/* OBSOLETE  */
+/* OBSOLETE       flush_cached_frames (); */
+/* OBSOLETE       select_frame (get_current_frame (), 0); */
+/* OBSOLETE       validate_files (); */
+/* OBSOLETE     } */
+/* OBSOLETE   else if (from_tty) */
+/* OBSOLETE     printf ("No core file now.\n"); */
+/* OBSOLETE } */