#ifdef FLOAT_ASM_MCS51
// long __fs2slong (float x)
-static void dummy(void) _naked
+static void dummy(void) __naked
{
- _asm
+ __asm
.globl ___fs2slong
___fs2slong:
lcall fsgetarg
cpl a
addc a, #0
//Check for zero
- push acc
jnz fs2slong_not_zero
mov a, dpl
- jnz fs2slong_not_zero
- mov a, dph
- jnz fs2slong_not_zero
- mov a, b
- jnz fs2slong_not_zero
- pop acc
- ret
+ orl a, dph
+ orl a, b
+ jnz fs2slong_clr_a
+ ret
+fs2slong_clr_a:
+ clr a
fs2slong_not_zero:
- pop acc
jnb acc.7, fs2slong_maxval_neg // x < -0x80000000
ret
fs2slong_pos:
mov b, a
mov a, #0x7F
ret
- _endasm;
+ __endasm;
}
#else
-
/* convert float to signed long */
-signed long __fs2slong (float f) {
+signed long __fs2slong (float f)
+{
if (!f)
return 0;