diff options
author | Peter Schauer <Peter.Schauer@mytum.de> | 1993-11-02 21:51:10 +0000 |
---|---|---|
committer | Peter Schauer <Peter.Schauer@mytum.de> | 1993-11-02 21:51:10 +0000 |
commit | ad09cb2bd3ea991f862103ee802a7a93e7895909 (patch) | |
tree | 9cf8cf03811fb421fa7f561f13fa4254c9a5018c /gdb/config/m68k | |
parent | ffd334ce820ff277e635f4a674b60776f0d633fd (diff) | |
download | fsf-binutils-gdb-ad09cb2bd3ea991f862103ee802a7a93e7895909.zip fsf-binutils-gdb-ad09cb2bd3ea991f862103ee802a7a93e7895909.tar.gz fsf-binutils-gdb-ad09cb2bd3ea991f862103ee802a7a93e7895909.tar.bz2 |
* findvar.c (value_of_register, value_from_register),
hppa-tdep.c (pa_print_fp_reg), infcmd.c (do_registers_info),
valops.c (value_assign): Use REGISTER_CONVERT_TO_* only if
REGISTER_CONVERTIBLE is defined, otherwise just copy the content.
Pass desired type to REGISTER_CONVERT_TO_*.
* config/m68k/tm-m68k.h, config/i960/tm-i960.h (REGISTER_CONVERT_*):
Pass length of desired type to store/extract_floating.
* config/i386/tm-arm.h, config/i386/tm-i386aix.h,
config/i386/tm-sun386.h, config/i386/tm-symmetry.h,
config/m88k/tm-m88k.h config/rs6000/tm-rs6000.h (REGISTER_CONVERT_*):
Use extract_floating and store_floating with length of desired type.
* config/m68k/tm-news.h (STORE,EXTRACT_RETURN_VALUE): Add type
parameter to REGISTER_CONVERT_*.
* config/a29k/tm-a29k.h, config/convex/tm-convex.h,
config/gould/tm-np1.h, config/gould/tm-pn.h, config/h8300/tm-h8300.h,
config/h8500/tm-h8500.h, config/i386/tm-i386v.h,
config/mips/tm-mips.h, config/ns32k/tm-merlin.h,
config/ns32k/tm-umax.h, config/pa/tm-hppa.h, config/pyr/tm-pyr.h,
config/sh/tm-sh.h, config/sparc/tm-sparc.h, config/tahoe/tm-tahoe.h,
config/vax/tm-vax.h, config/z8k/tm-z8k.h (REGISTER_CONVERTIBLE,
REGISTER_CONVERT_TO_RAW, REGISTER_CONVERT_TO_VIRTUAL): Remove
versions for which REGISTER_CONVERTIBLE is always false.
* z8k-tdep.c (register_convert_to_virtual, register_convert_to_raw):
Remove, no longer used.
* alpha-tdep.c (alpha_register_convert_to_raw,
alpha_register_convert_to_virtual): New routines to handle
the different raw formats in alpha floating point registers.
* config/alpha/tm-alpha.h (REGISTER_CONVERTIBLE,
REGISTER_CONVERT_TO_VIRTUAL, REGISTER_CONVERT_TO_RAW): Use them.
Diffstat (limited to 'gdb/config/m68k')
-rw-r--r-- | gdb/config/m68k/tm-m68k.h | 30 | ||||
-rw-r--r-- | gdb/config/m68k/tm-news.h | 7 |
2 files changed, 15 insertions, 22 deletions
diff --git a/gdb/config/m68k/tm-m68k.h b/gdb/config/m68k/tm-m68k.h index a57db13..69988da 100644 --- a/gdb/config/m68k/tm-m68k.h +++ b/gdb/config/m68k/tm-m68k.h @@ -151,33 +151,23 @@ read_memory_integer (read_register (SP_REGNUM), 4) will complain. */ extern const struct ext_format ext_format_68881; -/* Convert data from raw format for register REGNUM - to virtual format for register REGNUM. */ +/* Convert data from raw format for register REGNUM in buffer FROM + to virtual format with type TYPE in buffer TO. */ -#define REGISTER_CONVERT_TO_VIRTUAL(REGNUM,FROM,TO) \ +#define REGISTER_CONVERT_TO_VIRTUAL(REGNUM,TYPE,FROM,TO) \ { \ double val; \ - if ((REGNUM) >= FP0_REGNUM && (REGNUM) < FPC_REGNUM) \ - { \ - ieee_extended_to_double (&ext_format_68881, (FROM), &val); \ - store_floating ((TO), REGISTER_VIRTUAL_SIZE (REGNUM), val); \ - } \ - else \ - memcpy ((TO), (FROM), 4); \ + ieee_extended_to_double (&ext_format_68881, (FROM), &val); \ + store_floating ((TO), TYPE_LENGTH (TYPE), val); \ } -/* Convert data from virtual format for register REGNUM - to raw format for register REGNUM. */ +/* Convert data from virtual format with type TYPE in buffer FROM + to raw format for register REGNUM in buffer TO. */ -#define REGISTER_CONVERT_TO_RAW(REGNUM,FROM,TO) \ +#define REGISTER_CONVERT_TO_RAW(TYPE,REGNUM,FROM,TO) \ { \ - if ((REGNUM) >= FP0_REGNUM && (REGNUM) < FPC_REGNUM) \ - { \ - double val = extract_floating ((FROM), REGISTER_VIRTUAL_SIZE (REGNUM)); \ - double_to_ieee_extended (&ext_format_68881, &val, (TO)); \ - } \ - else \ - memcpy ((TO), (FROM), 4); \ + double val = extract_floating ((FROM), TYPE_LENGTH (TYPE)); \ + double_to_ieee_extended (&ext_format_68881, &val, (TO)); \ } /* Return the GDB type object for the "standard" data type diff --git a/gdb/config/m68k/tm-news.h b/gdb/config/m68k/tm-news.h index 886cf25..ee3d9b2 100644 --- a/gdb/config/m68k/tm-news.h +++ b/gdb/config/m68k/tm-news.h @@ -35,7 +35,9 @@ Here is an m-news.h file for gdb. It supports the 68881 registers. { if (TYPE_CODE (TYPE) == TYPE_CODE_FLT) \ { \ REGISTER_CONVERT_TO_VIRTUAL (FP0_REGNUM, \ - ®BUF[REGISTER_BYTE (FP0_REGNUM)], VALBUF); \ + REGISTER_VIRTUAL_TYPE (FP0_REGNUM), \ + ®BUF[REGISTER_BYTE (FP0_REGNUM)], \ + VALBUF); \ } \ else \ memcpy (VALBUF, REGBUF, TYPE_LENGTH (TYPE)); } @@ -48,7 +50,8 @@ Here is an m-news.h file for gdb. It supports the 68881 registers. { if (TYPE_CODE (TYPE) == TYPE_CODE_FLT) \ { \ char raw_buf[REGISTER_RAW_SIZE (FP0_REGNUM)]; \ - REGISTER_CONVERT_TO_RAW (FP0_REGNUM, VALBUF, raw_buf); \ + REGISTER_CONVERT_TO_RAW (REGISTER_VIRTUAL_TYPE (FP0_REGNUM), \ + FP0_REGNUM, VALBUF, raw_buf); \ write_register_bytes (FP0_REGNUM, \ raw_buf, REGISTER_RAW_SIZE (FP0_REGNUM)); \ } \ |