projects
/
fw
/
sdcc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
* device/lib/printf_large.c: pointer was converted to generic pointer for mcs51 model...
[fw/sdcc]
/
device
/
lib
/
_fs2schar.c
diff --git
a/device/lib/_fs2schar.c
b/device/lib/_fs2schar.c
index e027d08d5046745a5da0acc5b829ed418c68cf0a..f63d342aae7b16ed49f4f43d3e59bf81a0db4435 100644
(file)
--- a/
device/lib/_fs2schar.c
+++ b/
device/lib/_fs2schar.c
@@
-31,18
+31,15
@@
static void dummy(void) _naked
.globl ___fs2schar
___fs2schar:
lcall ___fs2slong
.globl ___fs2schar
___fs2schar:
lcall ___fs2slong
- push acc
jnz fs2schar_not_zero
mov a, dpl
jnz fs2schar_not_zero
mov a, dpl
- jnz fs2schar_not_zero
- mov a, dph
- jnz fs2schar_not_zero
- mov a, b
- jnz fs2schar_not_zero
- pop acc
+ orl a, dph
+ orl a, b
+ jnz fs2schar_clr_a
ret
ret
+fs2schar_clr_a:
+ clr a
fs2schar_not_zero:
fs2schar_not_zero:
- pop acc
jnb sign_a, fs2schar_pos
fs2schar_neg:
cpl a
jnb sign_a, fs2schar_pos
fs2schar_neg:
cpl a
@@
-83,7
+80,7
@@
signed char __fs2schar (float f) {
signed long sl=__fs2slong(f);
if (sl>=CHAR_MAX)
return CHAR_MAX;
signed long sl=__fs2slong(f);
if (sl>=CHAR_MAX)
return CHAR_MAX;
- if (sl<=CHAR_MIN)
+ if (sl<=CHAR_MIN)
return -CHAR_MIN;
return sl;
}
return -CHAR_MIN;
return sl;
}