diff --git a/src/cmp/sysfun.lsp b/src/cmp/sysfun.lsp index e669cadbd..fbc7cf3f6 100644 --- a/src/cmp/sysfun.lsp +++ b/src/cmp/sysfun.lsp @@ -795,6 +795,7 @@ (proclaim-function floor (real *) (values integer real) :no-side-effects t) (def-inline floor :always (t) (values &rest t) "ecl_floor1(#0)") (def-inline floor :always (t t) (values &rest t) "ecl_floor2(#0,#1)") +#+(or) ; does not work well, no multiple values (def-inline floor :always (fixnum fixnum) :fixnum "@01;(#0>=0&>0?(#0)/(#1):ecl_ifloor(#0,#1))") @@ -805,6 +806,7 @@ (proclaim-function truncate (real *) (values integer real) :no-side-effects t) (def-inline truncate :always (t) (values &rest t) "ecl_truncate1(#0)") (def-inline truncate :always (t t) (values &rest t) "ecl_truncate2(#0,#1)") +#+(or) ; does not work well, no multiple values (def-inline truncate :always (fixnum-float) :fixnum "(cl_fixnum)(#0)") (proclaim-function round (real *) (values integer real) :no-side-effects t) diff --git a/src/new-cmp/sysfun.lsp b/src/new-cmp/sysfun.lsp index 574c10ea3..ce78f3996 100644 --- a/src/new-cmp/sysfun.lsp +++ b/src/new-cmp/sysfun.lsp @@ -1627,6 +1627,7 @@ (def-inline floor :always (t) (values &rest t) "ecl_floor1(#0)") (def-inline floor :always (t t) (values &rest t) "ecl_floor2(#0,#1)") +#+(or) ; does not work well, no multiple values (def-inline floor :always (fixnum fixnum) :fixnum "@01;(#0>=0&>0?(#0)/(#1):ecl_ifloor(#0,#1))") @@ -1635,6 +1636,7 @@ (def-inline truncate :always (t) (values &rest t) "ecl_truncate1(#0)") (def-inline truncate :always (t t) (values &rest t) "ecl_truncate2(#0,#1)") +#+(or) ; does not work well, no multiple values (def-inline truncate :always (fixnum-float) :fixnum "(cl_fixnum)(#0)") (def-inline round :always (t) (values &rest t) "ecl_round1(#0)")