This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
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 *,