diff options
author | John Gilmore <gnu@cygnus> | 1992-05-20 06:03:50 +0000 |
---|---|---|
committer | John Gilmore <gnu@cygnus> | 1992-05-20 06:03:50 +0000 |
commit | 6ad6ef422c2eadede6584a3c526f64a8eaf03944 (patch) | |
tree | 326f495a181c59349f1b1d0d008c22e9c637ba7e /gdb/tm-m88k.h | |
parent | 21a6705a60bb586a06e0ceb698c8e0f49ae4d867 (diff) | |
download | gdb-6ad6ef422c2eadede6584a3c526f64a8eaf03944.zip gdb-6ad6ef422c2eadede6584a3c526f64a8eaf03944.tar.gz gdb-6ad6ef422c2eadede6584a3c526f64a8eaf03944.tar.bz2 |
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 <eggert@twinsun.com>.
* valarith.c (value_zerop): -0.0 is still zero.
* eval.c (evaluate_subexp): Avoid NaN anomalies in float compares.
Diffstat (limited to 'gdb/tm-m88k.h')
-rw-r--r-- | gdb/tm-m88k.h | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/gdb/tm-m88k.h b/gdb/tm-m88k.h index f562f86..31b62cb 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). */ |