X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=device%2Flib%2F_fs2sint.c;h=9da46173bc38bc12e759c43c7f43b6153aaa5744;hb=5b0663a7e051dce4f36557fff2418155d063baf1;hp=4a748dad74430c74d4cf00aa61e2ce36e2e89b2c;hpb=4e85b590d59de032a494ad439773f94d845db0f4;p=fw%2Fsdcc diff --git a/device/lib/_fs2sint.c b/device/lib/_fs2sint.c index 4a748dad..9da46173 100644 --- a/device/lib/_fs2sint.c +++ b/device/lib/_fs2sint.c @@ -30,6 +30,15 @@ static void dummy(void) _naked .globl ___fs2sint ___fs2sint: lcall ___fs2slong + jnz fs2sint_not_zero + mov a, dpl + orl a, dph + orl a, b + jnz fs2sint_clr_a + ret +fs2sint_clr_a: + clr a +fs2sint_not_zero: jnb sign_a, fs2sint_pos fs2sint_neg: cpl a @@ -66,7 +75,7 @@ signed int __fs2sint (float f) { signed long sl=__fs2slong(f); if (sl>=INT_MAX) return INT_MAX; - if (sl<=INT_MIN) + if (sl<=INT_MIN) return -INT_MIN; return sl; }