diff options
author | Claudiu Zissulescu <claziss@synopsys.com> | 2016-04-29 12:49:26 +0200 |
---|---|---|
committer | Claudiu Zissulescu <claziss@gcc.gnu.org> | 2016-04-29 12:49:26 +0200 |
commit | 39d504645250d0d367247807e23edf5f74252b6e (patch) | |
tree | 7dc26e0bbcfd6b12890fbfe4091d2eadaebb7c28 /libgcc/config/arc | |
parent | af95276348b27767973ac9c461cfbbd9b87d0ba1 (diff) | |
download | gcc-39d504645250d0d367247807e23edf5f74252b6e.zip gcc-39d504645250d0d367247807e23edf5f74252b6e.tar.gz gcc-39d504645250d0d367247807e23edf5f74252b6e.tar.bz2 |
[ARC] Handle FPX NaN within optimized floating point library.
gcc/
2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
* testsuite/gcc.target/arc/ieee_eq.c: New test.
libgcc/
2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
* config/arc/ieee-754/eqdf2.S: Handle FPX NaN.
From-SVN: r235633
Diffstat (limited to 'libgcc/config/arc')
-rw-r--r-- | libgcc/config/arc/ieee-754/eqdf2.S | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/libgcc/config/arc/ieee-754/eqdf2.S b/libgcc/config/arc/ieee-754/eqdf2.S index bc7d88e..7e80ef5 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 |