From 6ad6ef422c2eadede6584a3c526f64a8eaf03944 Mon Sep 17 00:00:00 2001 From: John Gilmore Date: Wed, 20 May 1992 06:03:50 +0000 Subject: [PATCH] 88K changes inspired by Ted Lemon (uunet!lupine!mellon) * tm-m88k.h, tm-umax.h: Avoid sizeof() in REGISTER_xxx macros, since they define the target, not the host. * m88k-pinsn.c: Fix typo. Patches by Paul Eggert . * valarith.c (value_zerop): -0.0 is still zero. * eval.c (evaluate_subexp): Avoid NaN anomalies in float compares. --- gdb/ChangeLog | 20 +++++++++++++++++++- gdb/m88k-pinsn.c | 4 ++-- gdb/tm-m88k.h | 28 +++++++++++++++------------- gdb/tm-umax.h | 5 ++++- 4 files changed, 40 insertions(+), 17 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index bf7b4891493..2f3b1acfdde 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,21 @@ +Tue May 19 19:38:10 1992 John Gilmore (gnu at cygnus.com) + + 88K changes inspired by Ted Lemon (uunet!lupine!mellon) + + * tm-m88k.h, tm-umax.h: Avoid sizeof() in REGISTER_xxx macros, + since they define the target, not the host. + * m88k-pinsn.c: Fix typo. + +Thu May 14 01:16:48 1992 John Gilmore (gnu at cygnus.com) + + * valarith.c (value_zerop): -0.0 is still zero. + * eval.c (evaluate_subexp): Avoid NaN anomalies in float compares. + Patches by Paul Eggert . + +Mon May 18 13:53:51 1992 Stu Grossman (grossman at cygnus.com) + + * alldeps.mak, depend: re-make to account for ser-*.c. + Sun May 17 16:51:20 1992 Fred Fish (fnf@cygnus.com) * inflow.c (new_tty): Temporarily ignore SIGTTOU when @@ -27,6 +45,7 @@ Wed May 13 18:28:20 1992 Steve Chamberlain (sac@thepub.cygnus.com) of a register to bcopy, rather than the host's sizeof(CORE_ADDR). Tue May 12 17:44:39 1992 Steve Chamberlain (sac@thepub.cygnus.com) + Changes to support GDB running on DOS using GO32 and H8 support * defs.h: if xm.h doesn't define FOPEN_RB, include "fopen-same.h", @@ -48,7 +67,6 @@ Tue May 12 17:44:39 1992 Steve Chamberlain (sac@thepub.cygnus.com) * values.c (value_as_pointer): remove bogus address bits from long. (unpack_long): unpack into unsigned long/short if pointer. - Tue May 12 14:15:48 1992 Stu Grossman (grossman at cygnus.com) * infrun.c (child_attach): Don't allow gdb to attach to itself. diff --git a/gdb/m88k-pinsn.c b/gdb/m88k-pinsn.c index 711323233fb..70dee951b75 100644 --- a/gdb/m88k-pinsn.c +++ b/gdb/m88k-pinsn.c @@ -340,8 +340,8 @@ void sprint_address (addr, buffer) if (!fs) { msymbol = lookup_minimal_symbol_by_pc (addr); - if (i == NULL) return;/* If nothing comes through, don't - print anything symbolic */ + if (msymbol == NULL) return; /* If nothing comes through, don't + print anything symbolic */ name = msymbol -> name; name_location = msymbol -> address; diff --git a/gdb/tm-m88k.h b/gdb/tm-m88k.h index f562f86f385..31b62cbc787 100644 --- a/gdb/tm-m88k.h +++ b/gdb/tm-m88k.h @@ -236,34 +236,34 @@ extern CORE_ADDR skip_prologue (); #define SHIFT_INST_REGS +/* Number of bytes of storage in the actual machine representation + for register N. */ + +#define REGISTER_RAW_SIZE(N) 4 + /* Total amount of space needed to store our copies of the machine's register state, the array `registers'. */ -#define REGISTER_BYTES (NUM_REGS * sizeof(REGISTER_TYPE)) +#define REGISTER_BYTES (NUM_REGS * REGISTER_RAW_SIZE(0)) /* Index within `registers' of the first byte of the space for register N. */ -#define REGISTER_BYTE(N) ((N)*sizeof(REGISTER_TYPE)) - -/* Number of bytes of storage in the actual machine representation - for register N. */ - -#define REGISTER_RAW_SIZE(N) (sizeof(REGISTER_TYPE)) +#define REGISTER_BYTE(N) ((N)*REGISTER_RAW_SIZE(0)) /* Number of bytes of storage in the program's representation for register N. */ -#define REGISTER_VIRTUAL_SIZE(N) (sizeof(REGISTER_TYPE)) +#define REGISTER_VIRTUAL_SIZE(N) (REGISTER_RAW_SIZE(N)) /* Largest value REGISTER_RAW_SIZE can have. */ -#define MAX_REGISTER_RAW_SIZE (sizeof(REGISTER_TYPE)) +#define MAX_REGISTER_RAW_SIZE (REGISTER_RAW_SIZE(0)) /* Largest value REGISTER_VIRTUAL_SIZE can have. /* Are FPS1, FPS2, FPR "virtual" regisers? */ -#define MAX_REGISTER_VIRTUAL_SIZE (sizeof(REGISTER_TYPE)) +#define MAX_REGISTER_VIRTUAL_SIZE (REGISTER_RAW_SIZE(0)) /* Nonzero if register N requires conversion from raw format to virtual format. */ @@ -273,12 +273,14 @@ extern CORE_ADDR skip_prologue (); /* Convert data from raw format for register REGNUM to virtual format for register REGNUM. */ -#define REGISTER_CONVERT_TO_VIRTUAL(REGNUM,FROM,TO) {bcopy ((FROM), (TO), (sizeof(REGISTER_TYPE)));} +#define REGISTER_CONVERT_TO_VIRTUAL(REGNUM,FROM,TO) \ + {bcopy ((FROM), (TO), REGISTER_RAW_SIZE (REGNUM));} /* Convert data from virtual format for register REGNUM to raw format for register REGNUM. */ -#define REGISTER_CONVERT_TO_RAW(REGNUM,FROM,TO) {bcopy ((FROM), (TO), (sizeof(REGISTER_TYPE)));} +#define REGISTER_CONVERT_TO_RAW(REGNUM,FROM,TO) + {bcopy ((FROM), (TO), REGISTER_RAW_SIZE (REGNUM));} /* Return the GDB type object for the "standard" data type of data in register N. */ @@ -297,7 +299,7 @@ extern CORE_ADDR skip_prologue (); of type TYPE, given in virtual format. */ #define STORE_RETURN_VALUE(TYPE,VALBUF) \ - write_register_bytes (2*sizeof(void*), (VALBUF), TYPE_LENGTH (TYPE)) + write_register_bytes (2*REGISTER_RAW_SIZE(0), (VALBUF), TYPE_LENGTH (TYPE)) /* In COFF, if PCC says a parameter is a short or a char, do not change it to int (it seems the convention is to change it). */ diff --git a/gdb/tm-umax.h b/gdb/tm-umax.h index 08f7e950119..0e74b92ad6a 100644 --- a/gdb/tm-umax.h +++ b/gdb/tm-umax.h @@ -113,6 +113,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ to be actual register numbers as far as the user is concerned but do serve to get the desired values when passed to read_register. */ +#define R0_REGNUM 0 /* General register 0 */ #define FP0_REGNUM 8 /* Floating point register 0 */ #define SP_REGNUM 16 /* Contains address of top of stack */ #define AP_REGNUM FP_REGNUM @@ -124,7 +125,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* Total amount of space needed to store our copies of the machine's register state, the array `registers'. */ -#define REGISTER_BYTES ((NUM_REGS - 4) * sizeof (int) + 4 * sizeof (double)) +#define REGISTER_BYTES \ + ((NUM_REGS - 4) * REGISTER_RAW_SIZE(R0_REGNUM) \ + + 4 * REGISTER_RAW_SIZE(LP0_REGNUM)) /* Index within `registers' of the first byte of the space for register N. */ -- 2.30.2