#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
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.
/* (c)2000/2001: hacked a little by johan.knol@iduna.nl for sdcc */
-
union float_long
{
float f;
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
-