This is the mail archive of the crossgcc@sourceware.cygnus.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more infromation.


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

Re: Torbjorn's IEEE-854 library has trouble with gcc-2.95.2




I'm cross compiling to a IBM-405gp(powerpc) processor using gcc-2.95.2
with the following config: 

../../gcc-2.95.2/configure --host=i686-pc-linux-gnu --target=ppc-eabi \
 --prefix=/usr/local/wave/ppc5 --exec-prefix=/usr/local/wave/ppc5 \
 --program-prefix=ppc_ 

Everything works fine with the original FP library using fp-bit.c distributed
with the compiler..

I'm trying to use the new IEEE-854 library from Torbjorn Granlund
<tege@swox.com> (See http://gcc.gnu.org/ml/gcc/1999-07/msg00553.html
for more info).

This new FP library shows on the PPC-405GP a factor of 2.2 improvement
running whetstone over the library distributed with gcc-2.95.2 which
compels me to use it in my product.

Unfortunately It has trouble comparing negative zero.

I'm trying to execute:

(gdb) fram 0
#0  __cmpsf2 (u=-0, v=0, nan_retval=1) at sfieeelib.c:2127

Where the following fragment in cmp_1(__cmpsf2) fails to return 0:

  /* Check if both operands are 0, either +0 or -0.  Even if the bit patterns
     are not the same for this case, signal operands as being equal.  */
  if ((um | vm) == 0
      && (COMPUTE_TYPE) (ue + 1) <= 1 && (COMPUTE_TYPE) (ve + 1) <= 1)
    return 0;

This is because ue is set to 1 by:

  unpack_for_compare_1 (um, ue, u);

Which seems to not deal with -0 very well.

I've verified that (float)2.0 * (float)-0.0 loops forever in __mulsf3
on a pentium, so this problem is not specific to the PowerPc
processor, but is endemic to the FP library.

I was wondering if anyone else has succesfully used this library for FP
emulation or if they've run across any problems with it.

If I figure out how to make it run, I'll post the changes and the results.

Thanx in advance,

- -- 
Peter Barada                             pbarada@wavemark.com
Wizard                                   781-852-2768 (direct)
WaveMark Technologies, Inc.              781-270-0193 (fax)

------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.cygnus.com


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