* [rfc] Remove deprecated_extract/store_floating
@ 2009-05-14 11:33 Ulrich Weigand
2009-05-14 12:04 ` Mark Kettenis
0 siblings, 1 reply; 3+ messages in thread
From: Ulrich Weigand @ 2009-05-14 11:33 UTC (permalink / raw)
To: gdb-patches
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
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [rfc] Remove deprecated_extract/store_floating
2009-05-14 11:33 [rfc] Remove deprecated_extract/store_floating Ulrich Weigand
@ 2009-05-14 12:04 ` Mark Kettenis
2009-05-18 13:44 ` Ulrich Weigand
0 siblings, 1 reply; 3+ messages in thread
From: Mark Kettenis @ 2009-05-14 12:04 UTC (permalink / raw)
To: uweigand; +Cc: gdb-patches
> Date: Thu, 14 May 2009 13:32:57 +0200 (CEST)
> From: "Ulrich Weigand" <uweigand@de.ibm.com>
>
> 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.
Looks good to me.
> 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
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [rfc] Remove deprecated_extract/store_floating
2009-05-14 12:04 ` Mark Kettenis
@ 2009-05-18 13:44 ` Ulrich Weigand
0 siblings, 0 replies; 3+ messages in thread
From: Ulrich Weigand @ 2009-05-18 13:44 UTC (permalink / raw)
To: Mark Kettenis; +Cc: gdb-patches
Mark Kettenis wrote:
> > Date: Thu, 14 May 2009 13:32:57 +0200 (CEST)
> > From: "Ulrich Weigand" <uweigand@de.ibm.com>
> >
> > 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.
>
> Looks good to me.
Thanks for the review!
I've checked the patch in now.
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
Ulrich.Weigand@de.ibm.com
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2009-05-18 13:44 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-05-14 11:33 [rfc] Remove deprecated_extract/store_floating Ulrich Weigand
2009-05-14 12:04 ` Mark Kettenis
2009-05-18 13:44 ` Ulrich Weigand
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox