X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=device%2Flib%2F_fs2slong.c;h=961bff9cec9010822615830ece7b3182e7c50643;hb=d08e6df2202ed3f19b681221b502dedb3c6c8a28;hp=8be058e3db0d5100432e1c3f7187e8e6b2e1c883;hpb=afa3906c3df1b0c1659c05604b00c1430895c7f2;p=fw%2Fsdcc diff --git a/device/lib/_fs2slong.c b/device/lib/_fs2slong.c index 8be058e3..961bff9c 100644 --- a/device/lib/_fs2slong.c +++ b/device/lib/_fs2slong.c @@ -24,9 +24,9 @@ #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 @@ -55,18 +55,15 @@ fs2slong_neg: 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: @@ -92,14 +89,14 @@ fs2slong_maxval_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;