X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=device%2Flib%2F_fs2schar.c;h=70b532885b774324b82d70cb237b0e85eb25c2b0;hb=5294a698ee4cea2593f685b81b3b623e72b66518;hp=f63d342aae7b16ed49f4f43d3e59bf81a0db4435;hpb=bae1ba55d40438d14536bc63de419d582ae5227e;p=fw%2Fsdcc diff --git a/device/lib/_fs2schar.c b/device/lib/_fs2schar.c index f63d342a..70b53288 100644 --- a/device/lib/_fs2schar.c +++ b/device/lib/_fs2schar.c @@ -25,65 +25,63 @@ #ifdef FLOAT_ASM_MCS51 // char __fs2schar (float x) -static void dummy(void) _naked +static void dummy(void) __naked { - _asm - .globl ___fs2schar + __asm + .globl ___fs2schar ___fs2schar: - lcall ___fs2slong - jnz fs2schar_not_zero - mov a, dpl - orl a, dph - orl a, b - jnz fs2schar_clr_a - ret + lcall ___fs2slong + jnz fs2schar_not_zero + mov a, dpl + orl a, dph + orl a, b + jnz fs2schar_clr_a + ret fs2schar_clr_a: - clr a + clr a fs2schar_not_zero: - jnb sign_a, fs2schar_pos + jnb sign_a, fs2schar_pos fs2schar_neg: - cpl a - jnz fs2schar_maxval_neg - mov a, b - cpl a - jnz fs2schar_maxval_neg - mov a, dph - cpl a - jnz fs2schar_maxval_neg - mov a, dpl - jnb acc.7, fs2schar_maxval_neg - ret + cpl a + jnz fs2schar_maxval_neg + mov a, b + cpl a + jnz fs2schar_maxval_neg + mov a, dph + cpl a + jnz fs2schar_maxval_neg + mov a, dpl + jnb acc.7, fs2schar_maxval_neg + ret fs2schar_maxval_neg: - mov dpl, #0x80 - ret + mov dpl, #0x80 + ret fs2schar_pos: - jnz fs2schar_maxval_pos - mov a, b - jnz fs2schar_maxval_pos - mov a, dph - jnz fs2schar_maxval_pos - mov a, dpl - jb acc.7, fs2schar_maxval_pos - ret + jnz fs2schar_maxval_pos + mov a, b + jnz fs2schar_maxval_pos + mov a, dph + jnz fs2schar_maxval_pos + mov a, dpl + jb acc.7, fs2schar_maxval_pos + ret fs2schar_maxval_pos: - mov dpl, #0x7F - ret - _endasm; + mov dpl, #0x7F + ret + __endasm; } - #else - /* convert float to signed char */ -signed char __fs2schar (float f) { +signed char __fs2schar (float f) +{ signed long sl=__fs2slong(f); - if (sl>=CHAR_MAX) - return CHAR_MAX; - if (sl<=CHAR_MIN) - return -CHAR_MIN; + if (sl>=SCHAR_MAX) + return SCHAR_MAX; + if (sl<=SCHAR_MIN) + return -SCHAR_MIN; return sl; } #endif -