From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30494 invoked by alias); 14 May 2009 12:04:48 -0000 Received: (qmail 29848 invoked by uid 22791); 14 May 2009 12:04:44 -0000 X-SWARE-Spam-Status: No, hits=-2.5 required=5.0 tests=AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from sibelius.xs4all.nl (HELO sibelius.xs4all.nl) (82.92.89.47) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 14 May 2009 12:04:38 +0000 Received: from brahms.sibelius.xs4all.nl (kettenis@localhost [127.0.0.1]) by brahms.sibelius.xs4all.nl (8.14.3/8.14.3) with ESMTP id n4EC4XcA026821; Thu, 14 May 2009 14:04:33 +0200 (CEST) Received: (from kettenis@localhost) by brahms.sibelius.xs4all.nl (8.14.3/8.14.3/Submit) id n4EC4XDb003182; Thu, 14 May 2009 14:04:33 +0200 (CEST) Date: Thu, 14 May 2009 12:04:00 -0000 Message-Id: <200905141204.n4EC4XDb003182@brahms.sibelius.xs4all.nl> From: Mark Kettenis To: uweigand@de.ibm.com CC: gdb-patches@sourceware.org In-reply-to: <200905141132.n4EBWvpC030704@d12av02.megacenter.de.ibm.com> (uweigand@de.ibm.com) Subject: Re: [rfc] Remove deprecated_extract/store_floating References: <200905141132.n4EBWvpC030704@d12av02.megacenter.de.ibm.com> Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2009-05/txt/msg00299.txt.bz2 > Date: Thu, 14 May 2009 13:32:57 +0200 (CEST) > From: "Ulrich Weigand" > > 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 >