* i386v4-nat.c (supply_gregset, fill_gregset): Subtract NUM_FREGS
authorFred Fish <fnf@specifix.com>
Thu, 4 Jan 1996 07:23:24 +0000 (07:23 +0000)
committerFred Fish <fnf@specifix.com>
Thu, 4 Jan 1996 07:23:24 +0000 (07:23 +0000)
  from NUM_REGS to get number of general registers that we care about.
Update copyright to 1996.
* config/i386/tm-i386.h (REGISTER_BYTES): Define in terms
of number of general regs and number of floating point regs.
Update copyright to 1996.

gdb/ChangeLog
gdb/config/i386/tm-i386.h
gdb/i386v4-nat.c

index 9c2afac..bb86178 100644 (file)
@@ -1,3 +1,12 @@
+Wed Jan  3 23:13:53 1996  Fred Fish  <fnf@cygnus.com>
+
+       * i386v4-nat.c (supply_gregset, fill_gregset): Subtract NUM_FREGS
+       from NUM_REGS to get number of general registers that we care about.
+       Update copyright to 1996.
+       * config/i386/tm-i386.h (REGISTER_BYTES): Define in terms
+       of number of general regs and number of floating point regs.
+       Update copyright to 1996.
+
 Wed Jan  3 19:49:54 1996  steve chamberlain  <sac@slash.cygnus.com>
 
        * config/i386/tm-win32.h (IN_SOLIB_CALL_TRAMPOLINE): New.
index 819735c..8f8090b 100644 (file)
@@ -1,5 +1,5 @@
 /* Macro definitions for GDB on an Intel i[345]86.
-   Copyright (C) 1995 Free Software Foundation, Inc.
+   Copyright (C) 1995, 1996 Free Software Foundation, Inc.
 
 This file is part of GDB.
 
@@ -115,10 +115,9 @@ extern int i386_skip_prologue PARAMS ((int));
 #define FPC_REGNUM 25  /* 80387 control register */
 
 /* Total amount of space needed to store our copies of the machine's register
-   state, the array `registers'.  Default is 16 i*86 registers and 8 floating
-   point registers. */
+   state, the array `registers'. */
 
-#define REGISTER_BYTES (16*4 + 8*10)
+#define REGISTER_BYTES ((NUM_REGS - NUM_FREGS)*4 + NUM_FREGS*10)
 
 /* Index within `registers' of the first byte of the space for register N. */
 
index 2de8407..1f1d38b 100644 (file)
@@ -1,5 +1,5 @@
 /* Native-dependent code for SVR4 Unix running on i386's, for GDB.
-   Copyright 1988, 1989, 1991, 1992 Free Software Foundation, Inc.
+   Copyright 1988, 1989, 1991, 1992, 1996 Free Software Foundation, Inc.
 
 This file is part of GDB.
 
@@ -75,6 +75,12 @@ static int regmap[] =
 };
 
 
+/*  FIXME:  These routine absolutely depends upon (NUM_REGS - NUM_FREGS)
+    being less than or equal to the number of registers that can be stored
+    in a gregset_t.  Note that with the current scheme there will typically
+    be more registers actually stored in a gregset_t that what we know
+    about.  This is bogus and should be fixed. */
+
 /*  Given a pointer to a general register set in /proc format (gregset_t *),
     unpack the register contents and supply them as gdb's idea of the current
     register values. */
@@ -87,7 +93,7 @@ supply_gregset (gregsetp)
   register greg_t *regp = (greg_t *) gregsetp;
   extern int regmap[];
 
-  for (regi = 0 ; regi < NUM_REGS ; regi++)
+  for (regi = 0 ; regi < (NUM_REGS - NUM_FREGS) ; regi++)
     {
       supply_register (regi, (char *) (regp + regmap[regi]));
     }
@@ -103,7 +109,7 @@ fill_gregset (gregsetp, regno)
   extern char registers[];
   extern int regmap[];
 
-  for (regi = 0 ; regi < NUM_REGS ; regi++)
+  for (regi = 0 ; regi < (NUM_REGS - NUM_FREGS) ; regi++)
     {
       if ((regno == -1) || (regno == regi))
        {