* ns32k-tdep.c: #include "frame.h"
authorJ.T. Conklin <jtc@acorntoolworks.com>
Mon, 22 Jan 2001 20:23:25 +0000 (20:23 +0000)
committerJ.T. Conklin <jtc@acorntoolworks.com>
Mon, 22 Jan 2001 20:23:25 +0000 (20:23 +0000)
* config/ns32k/tm-umax.h (FRAME_FIND_SAVED_REGS): Restore.  It
appears to have been inadvertantly removed sometime in May 1999.

* Revert 2000-11-09 changes where shared library objects were
moved from NATDEPFILES to TDEPFILES on NetBSD targets.  While
we'd like to be able to debug dynamically linked executables,
this makes it impossible to build a cross debugger on a many
hosts.

* config/i386/nbsd.mt: Remove solib.o, solib-svr4.o from TDEPFILES.
* config/i386/nbsdelf.mt: Likewise.
* config/m68k/nbsd.mt: Likewise.
* config/ns32k/nbsd.mt: Likewise.
* config/powerpc/nbsd.mt: Likewise.
* config/sparc/nbsd.mt: Likewise.
* config/sparc/nbsdelf.mt: Likewise.
* config/i386/nbsd.mh: Add solib.o, solib-svr4.o to NATDEPFILES.
* config/i386/nbsdelf.mh: Likewise.
* config/m68k/nbsd.mh: Likewise.
* config/ns32k/nbsd.mh: Likewise.
* config/powerpc/nbsd.mh: Likewise.
* config/sparc/nbsd.mh: Likewise.

16 files changed:
gdb/ChangeLog
gdb/config/i386/nbsd.mh
gdb/config/i386/nbsd.mt
gdb/config/i386/nbsdelf.mh
gdb/config/i386/nbsdelf.mt
gdb/config/m68k/nbsd.mh
gdb/config/m68k/nbsd.mt
gdb/config/ns32k/nbsd.mh
gdb/config/ns32k/nbsd.mt
gdb/config/ns32k/tm-umax.h
gdb/config/powerpc/nbsd.mh
gdb/config/powerpc/nbsd.mt
gdb/config/sparc/nbsd.mh
gdb/config/sparc/nbsd.mt
gdb/config/sparc/nbsdelf.mh
gdb/ns32k-tdep.c

index ffaf8d379492a00afcbb7df911aba030b9e71bab..6206f21ae5f3b6eda4fa27e6c281f045637b734c 100644 (file)
@@ -1,3 +1,29 @@
+2001-01-22  J.T. Conklin  <jtc@redback.com>
+
+       * ns32k-tdep.c: #include "frame.h"
+       * config/ns32k/tm-umax.h (FRAME_FIND_SAVED_REGS): Restore.  It
+       appears to have been inadvertantly removed sometime in May 1999.
+
+       * Revert 2000-11-09 changes where shared library objects were
+       moved from NATDEPFILES to TDEPFILES on NetBSD targets.  While
+       we'd like to be able to debug dynamically linked executables,
+       this makes it impossible to build a cross debugger on a many
+       hosts.
+
+       * config/i386/nbsd.mt: Remove solib.o, solib-svr4.o from TDEPFILES.
+        * config/i386/nbsdelf.mt: Likewise.
+        * config/m68k/nbsd.mt: Likewise.
+        * config/ns32k/nbsd.mt: Likewise.
+        * config/powerpc/nbsd.mt: Likewise.
+        * config/sparc/nbsd.mt: Likewise.
+        * config/sparc/nbsdelf.mt: Likewise.
+        * config/i386/nbsd.mh: Add solib.o, solib-svr4.o to NATDEPFILES.
+        * config/i386/nbsdelf.mh: Likewise. 
+        * config/m68k/nbsd.mh: Likewise.
+        * config/ns32k/nbsd.mh: Likewise.
+        * config/powerpc/nbsd.mh: Likewise.
+        * config/sparc/nbsd.mh: Likewise.
+
 2001-01-19  Jason Merrill  <jason@redhat.com>
 
        * dbxread.c (read_ofile_symtab): Stay with AUTO_DEMANGLING for G++.
index 78fed461ba656877e8a65b3f14bf9612ed39ed90..dce0eb5a5851da92605d29b8e653261d7920e1d0 100644 (file)
@@ -1,5 +1,5 @@
 # Host: Intel 386 running NetBSD
 XDEPFILES=
-NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o i386nbsd-nat.o
+NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o i386nbsd-nat.o solib.o solib-svr4.o
 XM_FILE= xm-nbsd.h
 NAT_FILE= nm-nbsd.h
index 4fa592c571b2a64d9cdab65aae08a44b321a7b86..aede1c397ef35a9e4a2d87cc197cf1ab8368aac6 100644 (file)
@@ -1,5 +1,5 @@
 # Target: Intel 386 running NetBSD
-TDEPFILES= i386-tdep.o i387-tdep.o i386nbsd-tdep.o solib.o solib-svr4.o
+TDEPFILES= i386-tdep.o i387-tdep.o i386nbsd-tdep.o
 TM_FILE= tm-nbsd.h
 
 GDBSERVER_DEPFILES= low-nbsd.o
index 993be012cf12f5589d4a40ea72c0f681db4e89b5..10e22dc94982bd364504a50be883ea1bca18e269 100644 (file)
@@ -1,5 +1,5 @@
 # Host: Intel 386 running NetBSD
 XDEPFILES=
-NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o i386nbsd-nat.o
+NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o i386nbsd-nat.o solib.o solib-svr4.o
 XM_FILE= xm-nbsd.h
 NAT_FILE= nm-nbsdelf.h
index e7bff449597a026982faff07a21e3d4e90690dd9..278217332fee7ef4635168347780e06607d046c3 100644 (file)
@@ -1,5 +1,5 @@
 # Target: Intel 386 running NetBSD
-TDEPFILES= i386-tdep.o i387-tdep.o solib.o solib-svr4.o
+TDEPFILES= i386-tdep.o i387-tdep.o
 TM_FILE= tm-nbsdelf.h
 
 GDBSERVER_DEPFILES= low-nbsd.o
index 0815d71940aba055c795faa06fa212585279ad3c..4300ff9a4ae5df87603e7d3808defd8b34d1c878 100644 (file)
@@ -1,5 +1,5 @@
 # Host: Motorola m68k running NetBSD
 XDEPFILES=
-NATDEPFILES= infptrace.o inftarg.o fork-child.o corelow.o m68knbsd-nat.o
+NATDEPFILES= infptrace.o inftarg.o fork-child.o corelow.o m68knbsd-nat.o solib.o solib-svr4.o
 XM_FILE= xm-nbsd.h
 NAT_FILE= nm-nbsd.h
index fabc84ba5fb2ba71e479f5ed675b85a1b776fbbb..5bfaa49fd92525c0dfda3ed2112780ac6005e84e 100644 (file)
@@ -1,5 +1,5 @@
 # Target: Motorola m68k running NetBSD
-TDEPFILES= m68k-tdep.o m68knbsd-tdep.o solib.o solib-svr4.o
+TDEPFILES= m68k-tdep.o m68knbsd-tdep.o
 TM_FILE= tm-nbsd.h
 
 GDBSERVER_DEPFILES= low-nbsd.o
index 14d374c715e9f63bb41c5011dfbc782160454269..711cbe4f05c3e8c540745cd8d1fb0856edb01828 100644 (file)
@@ -1,5 +1,5 @@
 # Host: PC532 running NetBSD
 XDEPFILES=
-NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o ns32knbsd-nat.o
+NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o ns32knbsd-nat.o solib.o solib-svr4.o
 XM_FILE= xm-nbsd.h
 NAT_FILE= nm-nbsd.h
index 1656978b237843f7bbececace000d16135b5082e..6eb86378a43293709c71205b05ba39a191d313f4 100644 (file)
@@ -1,5 +1,5 @@
 # Target: PC532 running NetBSD
-TDEPFILES= ns32k-tdep.o solib.o solib-svr4.o
+TDEPFILES= ns32k-tdep.o
 TM_FILE= tm-nbsd.h
 
 GDBSERVER_DEPFILES= low-nbsd.o
index db8c978177a5c0bc537cafbad3e37169c57daca9..7b2a4b59e2303720a6d8ef59f0b21802c6d89022 100644 (file)
@@ -222,6 +222,12 @@ extern CORE_ADDR umax_skip_prologue (CORE_ADDR);
 
 extern CORE_ADDR ns32k_get_enter_addr ();
 
+/* Return number of args passed to a frame.
+   Can return -1, meaning no way to tell.  */
+
+extern int umax_frame_num_args (struct frame_info *fi);
+#define FRAME_NUM_ARGS(fi) (umax_frame_num_args ((fi)))
+
 /* Return number of bytes at start of arglist that are not really args.  */
 
 #define FRAME_ARGS_SKIP 8
@@ -232,8 +238,35 @@ extern CORE_ADDR ns32k_get_enter_addr ();
    ways in the stack frame.  sp is even more special:
    the address we return for it IS the sp for the next frame.  */
 
-extern int umax_frame_num_args (struct frame_info *fi);
-#define FRAME_NUM_ARGS(fi) (umax_frame_num_args ((fi)))
+#define FRAME_FIND_SAVED_REGS(frame_info, frame_saved_regs)    \
+{                                                              \
+  register int regmask, regnum;                                \
+  int          localcount;                                     \
+  register CORE_ADDR   enter_addr;                             \
+  register CORE_ADDR   next_addr;                              \
+                                                               \
+  memset (&(frame_saved_regs), '\0', sizeof (frame_saved_regs));       \
+  enter_addr = ns32k_get_enter_addr ((frame_info)->pc);                \
+  if (enter_addr > 1)                                          \
+    {                                                          \
+      regmask = read_memory_integer (enter_addr+1, 1) & 0xff;  \
+      localcount = ns32k_localcount (enter_addr);              \
+      next_addr = (frame_info)->frame + localcount;            \
+      for (regnum = 0; regnum < 8; regnum++, regmask >>= 1)    \
+       (frame_saved_regs).regs[regnum] = (regmask & 1) ?       \
+                                         (next_addr -= 4) : 0; \
+      (frame_saved_regs).regs[SP_REGNUM] = (frame_info)->frame + 4;\
+      (frame_saved_regs).regs[PC_REGNUM] = (frame_info)->frame + 4;\
+      (frame_saved_regs).regs[FP_REGNUM] =                     \
+                 (read_memory_integer ((frame_info)->frame, 4));\
+    }                                                          \
+  else if (enter_addr == 1)                                    \
+    {                                                          \
+      CORE_ADDR sp = read_register (SP_REGNUM);                        \
+      (frame_saved_regs).regs[PC_REGNUM] = sp;                 \
+      (frame_saved_regs).regs[SP_REGNUM] = sp + 4;             \
+    }                                                          \
+}
 \f
 /* Things needed for making the inferior call functions.  */
 
index 341fa443f9623a1f5f0091bc3276c3e141fc5f04..ea10d86bbbe9cf0712b371f96b9ae6cf3c5ce6af 100644 (file)
@@ -1,5 +1,5 @@
 # Host: PowerPC, running NetBSD
 XDEPFILES=
-NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o ppcnbsd-nat.o
+NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o ppcnbsd-nat.o solib.o solib-svr4.o
 XM_FILE= xm-nbsd.h
 NAT_FILE= nm-nbsd.h
index 8045fa570bb2e072c71c9d3a5b8885e96238466d..7a32fd2db4c94181c281757693d38a6c2f5b6df2 100644 (file)
@@ -1,5 +1,5 @@
 # Target: PowerPC, running NetBSD
-TDEPFILES= rs6000-tdep.o ppc-linux-tdep.o solib.o solib-svr4.o
+TDEPFILES= rs6000-tdep.o ppc-linux-tdep.o
 TM_FILE= tm-nbsd.h
 
 GDBSERVER_DEPFILES= low-nbsd.o
index 8974e7553b26ddd6c2b66c5c133cd8ba6ef3864c..1ea8750fe4c78939a9a25224e6633134bebff4d6 100644 (file)
@@ -1,6 +1,6 @@
 # Host: Sun 4 or Sparcstation, running NetBSD
 XDEPFILES=
+NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o sparc-nat.o solib.o solib-svr4.o
 XM_FILE= xm-nbsd.h
 NAT_FILE= nm-nbsd.h
-NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o sparc-nat.o
 HOST_IPC=-DBSD_IPC
index 7735cf2311a584202430dcccc1c10e712fdc431b..5c89318bfe926887891c0f03950f4d121020b650 100644 (file)
@@ -1,3 +1,3 @@
 # Target: Sun 4 or Sparcstation, running NetBSD
-TDEPFILES= sparc-tdep.o solib.o solib-svr4.o
+TDEPFILES= sparc-tdep.o
 TM_FILE= tm-nbsd.h
index 8211a4f61efd0fff24d8ba8d55fdfaf4532fc728..ebba3abc182f329af7360a19bb67848584f28dcf 100644 (file)
@@ -1,6 +1,6 @@
 # Host: Sun 4 or Sparcstation, running NetBSD
 XDEPFILES=
+NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o sparc-nat.o solib.o solib-svr4.o
 XM_FILE= xm-nbsd.h
 NAT_FILE= nm-nbsdelf.h
-NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o sparc-nat.o 
 HOST_IPC=-DBSD_IPC
index 6f39c8cde7cdc0320ddba1249d06f622dbf6280d..4e50c1c92e8e877e5d1a7069a925b8937fd9979c 100644 (file)
@@ -20,6 +20,7 @@
    Boston, MA 02111-1307, USA.  */
 
 #include "defs.h"
+#include "frame.h"
 
 void
 _initialize_ns32k_tdep (void)