X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=device%2Flib%2F_fsneq.c;h=4b675d02f8a5d2bffb0f54c94b33189865e617cc;hb=a8a7fc8a514bc79114c6d76d6a6aeb885387478c;hp=68ed7fdeca764cda8e140bbcdd15bda1bcf137a4;hpb=bf1925f901a9f45ad2529874f41e1e2b01f5bc9f;p=fw%2Fsdcc diff --git a/device/lib/_fsneq.c b/device/lib/_fsneq.c index 68ed7fde..4b675d02 100644 --- a/device/lib/_fsneq.c +++ b/device/lib/_fsneq.c @@ -24,9 +24,9 @@ #ifdef FLOAT_ASM_MCS51 // char __fsneq (float a, float b) -static void dummy(void) _naked +static void dummy(void) __naked { - _asm + __asm .globl ___fsneq ___fsneq: mov r7, a @@ -37,13 +37,11 @@ ___fsneq: lcall fs_compare_uint32 mov dpl, r1 ret - _endasm; + __endasm; } #else - - /* ** libgcc support for software floating point. ** Copyright (C) 1991 by Pipeline Associates, Inc. All rights reserved. @@ -62,7 +60,6 @@ ___fsneq: /* (c)2000/2001: hacked a little by johan.knol@iduna.nl for sdcc */ - union float_long { float f; @@ -77,18 +74,11 @@ char __fsneq (float a1, float a2) fl1.f = a1; fl2.f = a2; -#if 0 - if (fl1.l<0 && fl2.l<0) - { - fl1.l ^= SIGNBIT; - fl2.l ^= SIGNBIT; - } -#endif - if (fl1.l == fl2.l) return (0); + if (((fl1.l | fl2.l) & 0x7FFFFFFF) == 0) + return (0); return (1); } #endif -