projects
/
fw
/
sdcc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
* device/lib/Makefile.in: reenable floating point in model-xstack-auto
[fw/sdcc]
/
device
/
lib
/
_fsneq.c
diff --git
a/device/lib/_fsneq.c
b/device/lib/_fsneq.c
index 68ed7fdeca764cda8e140bbcdd15bda1bcf137a4..4b675d02f8a5d2bffb0f54c94b33189865e617cc 100644
(file)
--- a/
device/lib/_fsneq.c
+++ b/
device/lib/_fsneq.c
@@
-24,9
+24,9
@@
#ifdef FLOAT_ASM_MCS51
// char __fsneq (float a, float b)
#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
.globl ___fsneq
___fsneq:
mov r7, a
@@
-37,13
+37,11
@@
___fsneq:
lcall fs_compare_uint32
mov dpl, r1
ret
lcall fs_compare_uint32
mov dpl, r1
ret
- _endasm;
+ _
_
endasm;
}
#else
}
#else
-
-
/*
** libgcc support for software floating point.
** Copyright (C) 1991 by Pipeline Associates, Inc. All rights reserved.
/*
** 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 */
/* (c)2000/2001: hacked a little by johan.knol@iduna.nl for sdcc */
-
union float_long
{
float f;
union float_long
{
float f;
@@
-77,18
+74,11
@@
char __fsneq (float a1, float a2)
fl1.f = a1;
fl2.f = 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)
return (0);
+ if (((fl1.l | fl2.l) & 0x7FFFFFFF) == 0)
+ return (0);
return (1);
}
#endif
return (1);
}
#endif
-