This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Fix encoding of IEEE extended real on big-endian ia64 (PR14610)
- From: Zack Weinberg <zack at codesourcery dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: Mark Mitchell <mark at codesourcery dot com>
- Date: Thu, 17 Jun 2004 10:07:46 -0700
- Subject: Re: Fix encoding of IEEE extended real on big-endian ia64 (PR14610)
- References: <874qpc1z0h.fsf@taltos.codesourcery.com>
Zack Weinberg <zack@codesourcery.com> writes:
> This is my candidate patch for the problem I described last night with
> the encoding of IEEE extended values. I believe the problem is only
> visible on ia64-hpux, being the only current target that wants Intel
> format extended numbers but in big-endian order.
...
I've now been able to test this patch on ia64-hp-hpux11.23, and it
works, so I'm checking it in. In addition to the new test cases, it
fixes gcc.c-torture/execute/ieee/fp-cmp-4e.c.
Mark, do you want this for 3.4.1?
zw
> Bug 14610
> * Makefile.in (min-insn-modes.o): Correct dependencies.
> * real.c (encode_ieee_extended, decode_ieee_extended): Always
> produce/consume 12-byte little-endian Intel format.
> (encode_ieee_extended_128, decode_ieee_extended_128): Delete.
> (encode_ieee_extended_motorola, decode_ieee_extended_motorola)
> (encode_ieee_extended_intel_96, decode_ieee_extended_intel_96)
> (encode_ieee_extended_intel_128, decode_ieee_extended_intel_128):
> New functions which convert between 12-byte little-endian Intel
> format and the desired format.
> (ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format)
> (ieee_extended_intel_96_format, ieee_extended_intel_128_format):
> Update.
> testsuite:
> * gcc.dg/ia64-float80-1.c, gcc.dg/ia64-float80-2.c: New testcases.