This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[rfc] Remove deprecated_extract/store_floating


Hello,

this patch removes the old deprecated_extract_floating and
deprecated_store_floating routines.  There was one remaining use
in sh64-tdep.c, which seems an oversight and is trivially replacable
by extract_typed_floating.

In addition, the patch inlines the extract_floating_by_length and
store_floating_by_length into their callers, which leads to some
simplification of the doublest.c code.

Tested on powerpc64-linux with no regression.
I'm planning on committing this patch in a couple of days.

Bye,
Ulrich


ChangeLog:

	* 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.


Index: gdb-head/gdb/doublest.c
===================================================================
--- gdb-head.orig/gdb/doublest.c
+++ gdb-head/gdb/doublest.c
@@ -800,65 +800,16 @@ floatformat_from_type (const struct 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
 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 
      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 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
Index: gdb-head/gdb/doublest.h
===================================================================
--- gdb-head.orig/gdb/doublest.h
+++ gdb-head/gdb/doublest.h
@@ -85,17 +85,6 @@ extern enum float_kind floatformat_class
 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.  */
Index: gdb-head/gdb/sh64-tdep.c
===================================================================
--- gdb-head.orig/gdb/sh64-tdep.c
+++ gdb-head/gdb/sh64-tdep.c
@@ -1577,7 +1577,7 @@ sh64_register_convert_to_raw (struct gdb
       || (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);
     }
-- 
  Dr. Ulrich Weigand
  GNU Toolchain for Linux on System z and Cell BE
  Ulrich.Weigand@de.ibm.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]