From 7238c72c69682df668273c33076b90cf197a88b7 Mon Sep 17 00:00:00 2001 From: claziss Date: Fri, 29 Apr 2016 10:49:26 +0000 Subject: [ARC] Handle FPX NaN within optimized floating point library. gcc/ 2016-04-29 Claudiu Zissulescu * testsuite/gcc.target/arc/ieee_eq.c: New test. libgcc/ 2016-04-29 Claudiu Zissulescu * config/arc/ieee-754/eqdf2.S: Handle FPX NaN. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235633 138bc75d-0d04-0410-961f-82ee72b054a4 --- libgcc/ChangeLog | 4 ++++ libgcc/config/arc/ieee-754/eqdf2.S | 15 ++++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) (limited to 'libgcc') diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index 598c1a09a61..df51a6e0d33 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,7 @@ +2016-04-29 Claudiu Zissulescu + + * config/arc/ieee-754/eqdf2.S: Handle FPX NaN. + 2016-04-28 Claudiu Zissulescu Joern Rennecke diff --git a/libgcc/config/arc/ieee-754/eqdf2.S b/libgcc/config/arc/ieee-754/eqdf2.S index bc7d88e838d..7e80ef52b2a 100644 --- a/libgcc/config/arc/ieee-754/eqdf2.S +++ b/libgcc/config/arc/ieee-754/eqdf2.S @@ -58,11 +58,16 @@ __eqdf2: well predictable (as seen from the branch predictor). */ __eqdf2: brne.d DBL0H,DBL1H,.Lhighdiff - bmsk r12,DBL0H,20 -#ifdef DPFP_COMPAT - or.f 0,DBL0L,DBL1L - bset.ne r12,r12,21 -#endif /* DPFP_COMPAT */ +#ifndef __HS__ + /* The next two instructions are required to recognize the FPX + NaN, which has a pattern like this: 0x7ff0_0000_8000_0000, as + oposite to 0x7ff8_0000_0000_0000. */ + or.f 0,DBL0L,DBL1L + mov_s r12,0x00200000 + bset.ne r12,r12,0 +#else + bmsk r12,DBL0H,20 +#endif /* __HS__ */ add1.f r12,r12,DBL0H /* set c iff NaN; also, clear z if NaN. */ j_s.d [blink] cmp.cc DBL0L,DBL1L -- cgit v1.2.1