* device/lib/pic/libdev/devices.txt: device list for mkall.sh
[fw/sdcc] / device / lib / _fs2slong.c
index 5e944d1be4646fd5cb8f8fc549b8ecaddb317239..87d662dfa6bd78a0ecacdcebaf3502fb3de2e20d 100644 (file)
@@ -54,7 +54,17 @@ fs2slong_neg:
        mov     a, r4
        cpl     a
        addc    a, #0
-       jnb     acc.7, fs2slong_maxval_neg  // x < -0x80000000
+       //Check for zero
+       jnz fs2slong_not_zero
+       mov a, dpl
+       orl a, dph
+       orl a, b
+       jnz fs2slong_clr_a
+       ret
+fs2slong_clr_a:
+       clr a
+fs2slong_not_zero:
+       jnb acc.7, fs2slong_maxval_neg  // x < -0x80000000
        ret
 fs2slong_pos:
        mov     a, r4
@@ -70,6 +80,7 @@ fs2slong_maxval_neg:
        mov     dpl, a
        mov     dph, a
        mov     b, a
+       mov     a, #0x80
        ret
 fs2slong_maxval_pos:
        mov     a, #0xFF