From e035e3736f445850fa1372f8d2a7f403cf1cf6a7 Mon Sep 17 00:00:00 2001 From: Ulrich Weigand Date: Mon, 18 May 2009 13:43:35 +0000 Subject: [PATCH] * doublest.c (NAN): Remove unused define. (extract_floating_by_length, deprecated_extract_floating): Remove. (store_floating_by_length, deprecated_store_floating): Remove. (extract_typed_floating): Do not call extract_floating_by_length. (store_typed_floating): Do not call store_floating_by_length. (convert_typed_floating): Remove redundant assertions. * doublest.h (deprecated_extract_floating): Remove. (deprecated_store_floating): Remove. * sh64-tdep.c (sh64_register_convert_to_raw): Call extract_typed_floating instead of deprecated_extract_floating. --- gdb/ChangeLog | 13 +++++++++++ gdb/doublest.c | 67 ++++----------------------------------------------------- gdb/doublest.h | 11 ---------- gdb/sh64-tdep.c | 2 +- 4 files changed, 18 insertions(+), 75 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 29a1326..55cace3 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,16 @@ +2009-05-18 Ulrich Weigand + + * doublest.c (NAN): Remove unused define. + (extract_floating_by_length, deprecated_extract_floating): Remove. + (store_floating_by_length, deprecated_store_floating): Remove. + (extract_typed_floating): Do not call extract_floating_by_length. + (store_typed_floating): Do not call store_floating_by_length. + (convert_typed_floating): Remove redundant assertions. + * doublest.h (deprecated_extract_floating): Remove. + (deprecated_store_floating): Remove. + * sh64-tdep.c (sh64_register_convert_to_raw): Call + extract_typed_floating instead of deprecated_extract_floating. + 2009-05-18 Jon Beniston * MAINTAINERS: Add lm32 target. diff --git a/gdb/doublest.c b/gdb/doublest.c index 859b439..6a2ba8c 100644 --- a/gdb/doublest.c +++ b/gdb/doublest.c @@ -800,65 +800,16 @@ floatformat_from_type (const struct type *type) return floatformat_from_length (TYPE_LENGTH (type)); } -/* If the host doesn't define NAN, use zero instead. */ -#ifndef NAN -#define NAN 0.0 -#endif - -/* Extract a floating-point number of length LEN from a target-order - byte-stream at ADDR. Returns the value as type DOUBLEST. */ - -static DOUBLEST -extract_floating_by_length (const void *addr, int len) -{ - const struct floatformat *fmt = floatformat_from_length (len); - DOUBLEST val; - - floatformat_to_doublest (fmt, addr, &val); - return val; -} - -DOUBLEST -deprecated_extract_floating (const void *addr, int len) -{ - return extract_floating_by_length (addr, len); -} - -/* Store VAL as a floating-point number of length LEN to a - target-order byte-stream at ADDR. */ - -static void -store_floating_by_length (void *addr, int len, DOUBLEST val) -{ - const struct floatformat *fmt = floatformat_from_length (len); - - floatformat_from_doublest (fmt, &val, addr); -} - -void -deprecated_store_floating (void *addr, int len, DOUBLEST val) -{ - store_floating_by_length (addr, len, val); -} - /* Extract a floating-point number of type TYPE from a target-order byte-stream at ADDR. Returns the value as type DOUBLEST. */ DOUBLEST extract_typed_floating (const void *addr, const struct type *type) { + const struct floatformat *fmt = floatformat_from_type (type); DOUBLEST retval; - gdb_assert (TYPE_CODE (type) == TYPE_CODE_FLT); - - if (TYPE_FLOATFORMAT (type) == NULL) - /* Not all code remembers to set the FLOATFORMAT (language - specific code? stabs?) so handle that here as a special case. */ - return extract_floating_by_length (addr, TYPE_LENGTH (type)); - - floatformat_to_doublest - (TYPE_FLOATFORMAT (type)[gdbarch_byte_order (current_gdbarch)], - addr, &retval); + floatformat_to_doublest (fmt, addr, &retval); return retval; } @@ -868,7 +819,7 @@ extract_typed_floating (const void *addr, const struct type *type) void store_typed_floating (void *addr, const struct type *type, DOUBLEST val) { - gdb_assert (TYPE_CODE (type) == TYPE_CODE_FLT); + const struct floatformat *fmt = floatformat_from_type (type); /* FIXME: kettenis/2001-10-28: It is debatable whether we should zero out any remaining bytes in the target buffer when TYPE is @@ -890,14 +841,7 @@ store_typed_floating (void *addr, const struct type *type, DOUBLEST val) See also the function convert_typed_floating below. */ memset (addr, 0, TYPE_LENGTH (type)); - if (TYPE_FLOATFORMAT (type) == NULL) - /* Not all code remembers to set the FLOATFORMAT (language - specific code? stabs?) so handle that here as a special case. */ - store_floating_by_length (addr, TYPE_LENGTH (type), val); - else - floatformat_from_doublest - (TYPE_FLOATFORMAT (type)[gdbarch_byte_order (current_gdbarch)], - &val, addr); + floatformat_from_doublest (fmt, &val, addr); } /* Convert a floating-point number of type FROM_TYPE from a @@ -911,9 +855,6 @@ convert_typed_floating (const void *from, const struct type *from_type, const struct floatformat *from_fmt = floatformat_from_type (from_type); const struct floatformat *to_fmt = floatformat_from_type (to_type); - gdb_assert (TYPE_CODE (from_type) == TYPE_CODE_FLT); - gdb_assert (TYPE_CODE (to_type) == TYPE_CODE_FLT); - if (from_fmt == NULL || to_fmt == NULL) { /* If we don't know the floating-point format of FROM_TYPE or diff --git a/gdb/doublest.h b/gdb/doublest.h index 9bf046a..1fe15d4 100644 --- a/gdb/doublest.h +++ b/gdb/doublest.h @@ -85,17 +85,6 @@ extern enum float_kind floatformat_classify (const struct floatformat *, extern const char *floatformat_mantissa (const struct floatformat *, const bfd_byte *); -/* These functions have been replaced by extract_typed_floating and - store_typed_floating. - - Most calls are passing in TYPE_LENGTH (TYPE) so can be changed to - just pass the TYPE. The remainder pass in the length of a - register, those calls should instead pass in the floating point - type that corresponds to that length. */ - -extern DOUBLEST deprecated_extract_floating (const void *addr, int len); -extern void deprecated_store_floating (void *addr, int len, DOUBLEST val); - /* Given TYPE, return its floatformat. TYPE_FLOATFORMAT() may return NULL. type_floatformat() detects that and returns a floatformat based on the type size when FLOATFORMAT is NULL. */ diff --git a/gdb/sh64-tdep.c b/gdb/sh64-tdep.c index 567acd3..ab976e2 100644 --- a/gdb/sh64-tdep.c +++ b/gdb/sh64-tdep.c @@ -1577,7 +1577,7 @@ sh64_register_convert_to_raw (struct gdbarch *gdbarch, struct type *type, || (regnum >= DR0_C_REGNUM && regnum <= DR_LAST_C_REGNUM)) { - DOUBLEST val = deprecated_extract_floating (from, TYPE_LENGTH(type)); + DOUBLEST val = extract_typed_floating (from, type); floatformat_from_doublest (&floatformat_ieee_double_littlebyte_bigword, &val, to); } -- 2.7.4