+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.
/* 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.
#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. */
/* 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.
};
+/* 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. */
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]));
}
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))
{