This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


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

[patch] Add floatformat types


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

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