This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


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

Re: [rfc] Add some more floatformat types ....


> On Aug 17,  3:34pm, Andrew Cagney wrote:
> 
> 
>> > ia64_reg	 -  82-bit fp register
> 
> [...]
> 
>> To narrow down my reservation here ``reg'' makes me think of a register, 
>> and part of the original was over floatformat describing how a register 
>> is stored in memory and not what a register looks like.
>> 
>> Another would be ia64_spill.
> 
> 
> ia64_spill is okay with me.
> 
> Kevin

I should probably also include the big endian case, the below adds:

	m88110_harris_ext
	arm_ext_big
	arm_ext_littlebyte_bigword
	ia64_spill_big
	ia64_spill_little
	ia64_quad_big
	ia64_quad_little

No promises on the last two being correct - I think I read the manual 
right :-)

Someone else can add i387_ext_big ....

Ok?

	Andrew

Index: include/ChangeLog
2001-08-18  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-18  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/18 18:51:51
*************** 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.6
diff -p -r1.6 floatformat.c
*** floatformat.c	2000/05/31 11:00:54	1.6
--- floatformat.c	2001/08/18 18:52:07
*************** 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]