This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
[patch] Add floatformat types
- To: gcc-patches at gcc dot gnu dot org, binutils at sources dot redhat dot com, gdb-patches at sources dot redhat dot com
- Subject: [patch] Add floatformat types
- From: Andrew Cagney <ac131313 at cygnus dot com>
- Date: Mon, 20 Aug 2001 19:57:23 -0400
Hello,
The attached patch adds the float format types:
floatformat_m88110_harris_ext;
floatformat_arm_ext_big;
floatformat_arm_ext_littlebyte_bigword;
floatformat_ia64_spill_big;
floatformat_ia64_spill_little;
floatformat_ia64_quad_big;
floatformat_ia64_quad_little;
it also identifes the floatformat type:
floatformat_arm_ext
as deprecated. All known users (i.e. GDB) are being updated to use the
more explicit arm_ext_big and arm_ext_littlebyte_bigword (and probably
fix some long standing bugs in the process [:-)]).
The thread:
http://sources.redhat.com/ml/gdb-patches/2001-08/msg00130.html
gives the history of this change.
I'm committing the attatched to GCC (and hence BINUTILS+GDB).
Andrew
Index: include/ChangeLog
2001-08-20 Andrew Cagney <ac131313@redhat.com>
* floatformat.h (floatformat_arm_ext): Document as deprecated.
(floatformat_arm_ext_big, floatformat_arm_ext_littlebyte_bigword)
(floatformat_ia64_spill_little, floatformat_ia64_quad_little)
(floatformat_ia64_spill_big, floatformat_ia64_quad_big)
(floatformat_m88110_harris_ext): Declare.
Index: libiberty/ChangeLog
2001-08-20 Andrew Cagney <ac131313@redhat.com>
* floatformat.c (floatformat_m88110_ext): Remove #ifdef
HARRIS_FLOAT_FORMAT.
(floatformat_ia64_spill_little, floatformat_ia64_quad_little)
(floatformat_ia64_spill_big, floatformat_ia64_quad_big)
(floatformat_arm_ext_big, floatformat_arm_ext_littlebyte_bigword)
(floatformat_m88110_harris_ext): New float formats.
Index: include/floatformat.h
===================================================================
RCS file: /cvs/gcc/gcc/include/floatformat.h,v
retrieving revision 1.4
diff -p -r1.4 floatformat.h
*** floatformat.h 2001/03/14 19:44:38 1.4
--- floatformat.h 2001/08/20 23:34:31
*************** extern const struct floatformat floatfor
*** 95,101 ****
extern const struct floatformat floatformat_m68881_ext;
extern const struct floatformat floatformat_i960_ext;
extern const struct floatformat floatformat_m88110_ext;
! extern const struct floatformat floatformat_arm_ext;
/* Convert from FMT to a double.
FROM is the address of the extended float.
--- 95,109 ----
extern const struct floatformat floatformat_m68881_ext;
extern const struct floatformat floatformat_i960_ext;
extern const struct floatformat floatformat_m88110_ext;
! extern const struct floatformat floatformat_m88110_harris_ext;
! extern const struct floatformat floatformat_arm_ext; /* deprecated. */
! extern const struct floatformat floatformat_arm_ext_big;
! extern const struct floatformat floatformat_arm_ext_littlebyte_bigword;
! /* IA-64 Floating Point register spilt into memory. */
! extern const struct floatformat floatformat_ia64_spill_big;
! extern const struct floatformat floatformat_ia64_spill_little;
! extern const struct floatformat floatformat_ia64_quad_big;
! extern const struct floatformat floatformat_ia64_quad_little;
/* Convert from FMT to a double.
FROM is the address of the extended float.
Index: libiberty/floatformat.c
===================================================================
RCS file: /cvs/gcc/gcc/libiberty/floatformat.c,v
retrieving revision 1.7
diff -p -r1.7 floatformat.c
*** floatformat.c 2001/08/14 00:31:41 1.7
--- floatformat.c 2001/08/20 23:37:33
*************** const struct floatformat floatformat_i96
*** 91,107 ****
};
const struct floatformat floatformat_m88110_ext =
{
! #ifdef HARRIS_FLOAT_FORMAT
/* Harris uses raw format 128 bytes long, but the number is just an ieee
double, and the last 64 bits are wasted. */
floatformat_big,128, 0, 1, 11, 0x3ff, 0x7ff, 12, 52,
floatformat_intbit_no,
! "floatformat_m88110_ext(harris)"
! #else
! floatformat_big, 80, 0, 1, 15, 0x3fff, 0x7fff, 16, 64,
! floatformat_intbit_yes,
! "floatformat_m88110_ext"
! #endif /* HARRIS_FLOAT_FORMAT */
};
const struct floatformat floatformat_arm_ext =
{
--- 91,107 ----
};
const struct floatformat floatformat_m88110_ext =
{
! floatformat_big, 80, 0, 1, 15, 0x3fff, 0x7fff, 16, 64,
! floatformat_intbit_yes,
! "floatformat_m88110_ext"
! };
! const struct floatformat floatformat_m88110_harris_ext =
! {
/* Harris uses raw format 128 bytes long, but the number is just an ieee
double, and the last 64 bits are wasted. */
floatformat_big,128, 0, 1, 11, 0x3ff, 0x7ff, 12, 52,
floatformat_intbit_no,
! "floatformat_m88110_ext_harris"
};
const struct floatformat floatformat_arm_ext =
{
*************** const struct floatformat floatformat_arm
*** 109,114 ****
--- 109,152 ----
floatformat_big, 96, 0, 17, 15, 0x3fff, 0x7fff, 32, 64,
floatformat_intbit_yes,
"floatformat_arm_ext"
+ };
+ const struct floatformat floatformat_arm_ext_big =
+ {
+ /* Bits 1 to 16 are unused. */
+ floatformat_big, 96, 0, 17, 15, 0x3fff, 0x7fff, 32, 64,
+ floatformat_intbit_yes,
+ "floatformat_arm_ext_big"
+ };
+ const struct floatformat floatformat_arm_ext_littlebyte_bigword =
+ {
+ /* Bits 1 to 16 are unused. */
+ floatformat_littlebyte_bigword, 96, 0, 17, 15, 0x3fff, 0x7fff, 32, 64,
+ floatformat_intbit_yes,
+ "floatformat_arm_ext_littlebyte_bigword"
+ };
+ const struct floatformat floatformat_ia64_spill_big =
+ {
+ floatformat_big, 128, 0, 1, 17, 65535, 0x1ffff, 18, 64,
+ floatformat_intbit_yes,
+ "floatformat_ia64_spill_big"
+ };
+ const struct floatformat floatformat_ia64_spill_little =
+ {
+ floatformat_little, 128, 0, 1, 17, 65535, 0x1ffff, 18, 64,
+ floatformat_intbit_yes,
+ "floatformat_ia64_spill_little"
+ };
+ const struct floatformat floatformat_ia64_quad_big =
+ {
+ floatformat_big, 128, 0, 1, 15, 16383, 0x7fff, 16, 112,
+ floatformat_intbit_no,
+ "floatformat_ia64_quad_big"
+ };
+ const struct floatformat floatformat_ia64_quad_little =
+ {
+ floatformat_little, 128, 0, 1, 15, 16383, 0x7fff, 16, 112,
+ floatformat_intbit_no,
+ "floatformat_ia64_quad_little"
};
static unsigned long get_field PARAMS ((unsigned char *,