Target FP: Use target format throughout expression parsing
[deliverable/binutils-gdb.git] / gdb / doublest.h
index ae42bdb1bdfe6f18e1de75466a28b141b1628c25..4b9d6bcbc916589526172ff2338dc900c0698de8 100644 (file)
@@ -1,6 +1,6 @@
 /* Floating point definitions for GDB.
 
-   Copyright (C) 1986-2016 Free Software Foundation, Inc.
+   Copyright (C) 1986-2017 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
 struct type;
 struct floatformat;
 
-/* Setup definitions for host and target floating point formats.  We need to
-   consider the format for `float', `double', and `long double' for both target
-   and host.  We need to do this so that we know what kind of conversions need
-   to be done when converting target numbers to and from the hosts DOUBLEST
-   data type.  */
-
-/* This is used to indicate that we don't know the format of the floating point
-   number.  Typically, this is useful for native ports, where the actual format
-   is irrelevant, since no conversions will be taking place.  */
-
-#include "floatformat.h"       /* For struct floatformat */
-
 /* Use `long double' if the host compiler supports it.  (Note that this is not
    necessarily any longer than `double'.  On SunOS/gcc, it's the same as
    double.)  This is necessary because GDB internally converts all floating
@@ -83,11 +71,15 @@ extern enum float_kind floatformat_classify (const struct floatformat *,
 extern const char *floatformat_mantissa (const struct floatformat *,
                                         const bfd_byte *);
 
-/* 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.  */
+extern std::string floatformat_to_string (const struct floatformat *fmt,
+                                         const gdb_byte *in,
+                                         const char *format = nullptr);
+extern bool floatformat_from_string (const struct floatformat *fmt,
+                                    gdb_byte *out, const std::string &in);
+
+/* Return the floatformat's total size in host bytes.  */
 
-const struct floatformat *floatformat_from_type (const struct type *type);
+extern size_t floatformat_totalsize_bytes (const struct floatformat *fmt);
 
 extern DOUBLEST extract_typed_floating (const void *addr,
                                        const struct type *type);
This page took 0.025681 seconds and 4 git commands to generate.