Update tp 2.49.90, the pre-release of 2.50
OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=81
This commit is contained in:
parent
d545bb4e9e
commit
f1624bdea7
@ -1,37 +0,0 @@
|
|||||||
---
|
|
||||||
modules/clx/new-clx/clx.f | 6 ++++--
|
|
||||||
modules/clx/new-clx/clx.lisp | 1 +
|
|
||||||
2 files changed, 5 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
--- a/modules/clx/new-clx/clx.f
|
|
||||||
+++ b/modules/clx/new-clx/clx.f
|
|
||||||
@@ -1723,7 +1723,8 @@ static void general_lookup (object type)
|
|
||||||
DEFUN(XLIB:##L##-ID,xxx) \
|
|
||||||
{ VALUES1(make_uint29((XID)get_##c (popSTACK()))); } \
|
|
||||||
DEFUN(XLIB:##L##-EQUAL,xxx yyy) \
|
|
||||||
- { VALUES_IF(get_##c (popSTACK()) == get_##c (popSTACK())); } \
|
|
||||||
+ { object _last = popSTACK(); \
|
|
||||||
+ VALUES_IF(get_##c (popSTACK()) == get_##c (_last)); } \
|
|
||||||
DEFUN(XLIB:LOOKUP-##L,display xxx) \
|
|
||||||
{ general_lookup (`XLIB::##L##`); }
|
|
||||||
|
|
||||||
@@ -1740,7 +1741,8 @@ static void general_lookup (object type)
|
|
||||||
DEFUN(XLIB:##L##-P,xxx) \
|
|
||||||
{ VALUES_IF(c##_p (popSTACK())); } \
|
|
||||||
DEFUN(XLIB:##L##-EQUAL,xxx yyy) \
|
|
||||||
- { VALUES_IF(get_##c (popSTACK()) == get_##c (popSTACK())); }
|
|
||||||
+ { object _last = popSTACK(); \
|
|
||||||
+ VALUES_IF(get_##c (popSTACK()) == get_##c (_last)); }
|
|
||||||
|
|
||||||
|
|
||||||
/* -----------------------------------------------------------------------
|
|
||||||
--- a/modules/clx/new-clx/clx.lisp
|
|
||||||
+++ b/modules/clx/new-clx/clx.lisp
|
|
||||||
@@ -22,6 +22,7 @@
|
|
||||||
;;;; --------------------------------------------------------------------------
|
|
||||||
;;;; Exports
|
|
||||||
;;;; --------------------------------------------------------------------------
|
|
||||||
+(export '*displays*)
|
|
||||||
(export
|
|
||||||
'(*version* access-control access-error access-hosts activate-screen-saver
|
|
||||||
add-access-host add-resource add-to-save-set alist alloc-color
|
|
@ -2,9 +2,10 @@
|
|||||||
tests/streams.tst | 4 ++--
|
tests/streams.tst | 4 ++--
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/tests/streams.tst b/tests/streams.tst
|
||||||
--- a/tests/streams.tst
|
--- a/tests/streams.tst
|
||||||
+++ b/tests/streams.tst
|
+++ b/tests/streams.tst
|
||||||
@@ -1036,8 +1036,8 @@ T
|
@@ -1043,8 +1043,8 @@ T
|
||||||
(describe (make-array nil :element-type nil) s)))
|
(describe (make-array nil :element-type nil) s)))
|
||||||
T
|
T
|
||||||
|
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
---
|
---
|
||||||
clisp-9c43d428/configure | 4 ++--
|
clisp-2.49.90/configure | 4 ++--
|
||||||
clisp-9c43d428/src/lispbibl.d | 16 +++++++++++-----
|
clisp-2.49.90/src/lispbibl.d | 16 +++++++++++-----
|
||||||
clisp-9c43d428/src/makemake.in | 15 ++++++++++++---
|
clisp-2.49.90/src/makemake.in | 17 +++++++++++++----
|
||||||
clisp-9c43d428/utils/modprep.lisp | 2 +-
|
clisp-2.49.90/utils/modprep.lisp | 2 +-
|
||||||
4 files changed, 26 insertions(+), 11 deletions(-)
|
4 files changed, 27 insertions(+), 12 deletions(-)
|
||||||
|
|
||||||
--- clisp-9c43d428/configure
|
--- clisp-2.49.90/configure
|
||||||
+++ clisp-9c43d428/configure 2017-07-27 12:30:20.772795623 +0000
|
+++ clisp-2.49.90/configure 2018-02-12 08:20:34.280915654 +0000
|
||||||
@@ -405,11 +405,11 @@ do
|
@@ -429,11 +429,11 @@ do
|
||||||
passnext=makemake ;;
|
passnext=makemake ;;
|
||||||
|
|
||||||
--vimdir=* | --vimdi=* | --vimd=* | --vim=* | --vi=*)
|
--vimdir=* | --vimdi=* | --vimd=* | --vim=* | --vi=*)
|
||||||
@ -21,9 +21,9 @@
|
|||||||
makemake_args="$makemake_args --vimdir="
|
makemake_args="$makemake_args --vimdir="
|
||||||
prev=vimdir
|
prev=vimdir
|
||||||
passnext=both ;;
|
passnext=both ;;
|
||||||
--- clisp-9c43d428/src/lispbibl.d
|
--- clisp-2.49.90/src/lispbibl.d
|
||||||
+++ clisp-9c43d428/src/lispbibl.d 2017-07-27 12:22:29.421471307 +0000
|
+++ clisp-2.49.90/src/lispbibl.d 2018-02-12 08:20:34.284915577 +0000
|
||||||
@@ -175,7 +175,7 @@
|
@@ -178,7 +178,7 @@
|
||||||
#define PC386 /* IBMPC-compatible with 80386/80486-processor */
|
#define PC386 /* IBMPC-compatible with 80386/80486-processor */
|
||||||
#endif
|
#endif
|
||||||
#ifdef GENERIC_UNIX
|
#ifdef GENERIC_UNIX
|
||||||
@ -32,7 +32,7 @@
|
|||||||
#define PC386
|
#define PC386
|
||||||
#endif
|
#endif
|
||||||
#if (defined(sun) && defined(unix) && defined(sparc))
|
#if (defined(sun) && defined(unix) && defined(sparc))
|
||||||
@@ -278,8 +278,14 @@
|
@@ -270,8 +270,14 @@
|
||||||
#endif
|
#endif
|
||||||
#ifdef GENERIC_UNIX
|
#ifdef GENERIC_UNIX
|
||||||
#define UNIX
|
#define UNIX
|
||||||
@ -48,7 +48,7 @@
|
|||||||
#endif
|
#endif
|
||||||
#ifdef __GNU__
|
#ifdef __GNU__
|
||||||
#define UNIX_HURD /* the GNU system (Hurd + glibc) */
|
#define UNIX_HURD /* the GNU system (Hurd + glibc) */
|
||||||
@@ -1231,7 +1237,7 @@ typedef signed int signean;
|
@@ -1281,7 +1287,7 @@ typedef signed int signean;
|
||||||
address of its component 'ident' and return it as number: */
|
address of its component 'ident' and return it as number: */
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#ifndef offsetof
|
#ifndef offsetof
|
||||||
@ -57,7 +57,7 @@
|
|||||||
#endif
|
#endif
|
||||||
/* Determine the offset of an array 'ident' in a struct of the type 'type': */
|
/* Determine the offset of an array 'ident' in a struct of the type 'type': */
|
||||||
#if defined(__cplusplus) || defined(MICROSOFT)
|
#if defined(__cplusplus) || defined(MICROSOFT)
|
||||||
@@ -3433,9 +3439,9 @@ typedef signed_int_with_n_bits(intVsize)
|
@@ -5520,9 +5526,9 @@ typedef signed_int_with_n_bits(intVsize)
|
||||||
type_data_object(type,data) */
|
type_data_object(type,data) */
|
||||||
#if defined(WIDE) && defined(WIDE_STRUCT)
|
#if defined(WIDE) && defined(WIDE_STRUCT)
|
||||||
#if BIG_ENDIAN_P==WIDE_ENDIANNESS
|
#if BIG_ENDIAN_P==WIDE_ENDIANNESS
|
||||||
@ -69,8 +69,8 @@
|
|||||||
#endif
|
#endif
|
||||||
#elif !(oint_addr_shift==0)
|
#elif !(oint_addr_shift==0)
|
||||||
#define type_data_object(type,data) \
|
#define type_data_object(type,data) \
|
||||||
--- clisp-9c43d428/src/makemake.in
|
--- clisp-2.49.90/src/makemake.in
|
||||||
+++ clisp-9c43d428/src/makemake.in 2017-07-27 12:29:06.778157626 +0000
|
+++ clisp-2.49.90/src/makemake.in 2018-02-12 08:24:54.275897762 +0000
|
||||||
@@ -250,6 +250,9 @@ verbose=${CLISP_MAKEMAKE_VERBOSE:-false}
|
@@ -250,6 +250,9 @@ verbose=${CLISP_MAKEMAKE_VERBOSE:-false}
|
||||||
# Handle --with-... arguments
|
# Handle --with-... arguments
|
||||||
while test -z "$endofargs"; do
|
while test -z "$endofargs"; do
|
||||||
@ -81,32 +81,30 @@
|
|||||||
-verb* | --verb* )
|
-verb* | --verb* )
|
||||||
verbose=`echol "$1"|sed 's/-*v[^=]*=*//'`
|
verbose=`echol "$1"|sed 's/-*v[^=]*=*//'`
|
||||||
test -n "${verbose}" || verbose=true
|
test -n "${verbose}" || verbose=true
|
||||||
@@ -1147,6 +1150,7 @@ else
|
@@ -1183,11 +1186,13 @@ else
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Main cpu dependencies:
|
# Main cpu dependencies:
|
||||||
+set -x
|
+set -x
|
||||||
cpu=$host_cpu_c_abi
|
cpu="${host_cpu_c_abi}"
|
||||||
if test -z "$cpu"; then
|
if test -z "$cpu"; then
|
||||||
echo "$0: WARNING: host_cpu_c_abi is void; using host_cpu=${host_cpu}" >&2
|
echo "$0: WARNING: host_cpu_c_abi is void; using host_cpu=${host_cpu}" >&2
|
||||||
@@ -1157,6 +1161,7 @@ if test -z "$cpu"; then
|
cpu="${host_cpu}"
|
||||||
* ) cpu=${host_cpu} ;;
|
|
||||||
esac
|
|
||||||
fi
|
fi
|
||||||
+set +x
|
+set +x
|
||||||
|
|
||||||
test "${verbose}" = true -o "${verbose}" = yes && \
|
test "${verbose}" = true -o "${verbose}" = yes && \
|
||||||
cat <<EOF >&2
|
cat <<EOF >&2
|
||||||
@@ -1293,7 +1298,7 @@ if [ $XCC_GCC = true ] ; then
|
@@ -1337,7 +1342,7 @@ if [ $XCC_GCC = true ] ; then
|
||||||
fi
|
fi
|
||||||
# For platforms that use global register variables...
|
# For platforms that use global register variables...
|
||||||
case "$cpu" in
|
case "$cpu" in
|
||||||
- m68k | i386 | sparc | sparc64 | hppa | m88k | arm | alpha* | convex | s390*)
|
- m68k | i386 | sparc | sparc64 | hppa | arm | armhf | alpha | s390*)
|
||||||
+ m68k | i386 | sparc | sparc64 | hppa | m88k | arm* | alpha* | convex | s390*)
|
+ m68k | i386 | sparc | sparc64 | hppa | arm | armhf | armel | alpha | s390*)
|
||||||
if [ $CROSS = false ] ; then
|
if [ $CROSS = false ] ; then
|
||||||
case "$XCC_GCC_VERSION" in
|
case "$XCC_GCC_VERSION" in
|
||||||
3.1*)
|
3.1*)
|
||||||
@@ -1333,6 +1338,9 @@ if [ $XCC_GCC = true ] ; then
|
@@ -1384,6 +1389,9 @@ if [ $XCC_GCC = true ] ; then
|
||||||
XCFLAGS=${XCFLAGS}" -pthread"
|
XCFLAGS=${XCFLAGS}" -pthread"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -116,16 +114,25 @@
|
|||||||
else
|
else
|
||||||
|
|
||||||
if [ $CROSS = false ] ; then
|
if [ $CROSS = false ] ; then
|
||||||
@@ -1714,7 +1722,7 @@ if [ "${enable_portability}" = no ] ; th
|
@@ -1605,7 +1613,7 @@ else
|
||||||
ARI_ASMD=$ARI_ASMD' arihppa'
|
;;
|
||||||
ARI_ASMS=$ARI_ASMS' arihppa'
|
|
||||||
fi
|
# Linux/arm
|
||||||
- if [ "$cpu" = arm -o "$cpu" = armhf ] ; then
|
- linux*--arm | linux*--armhf)
|
||||||
+ if [ "$cpu" = arm -o "$cpu" = armhf -o "$cpu" = armel ] ; then
|
+ linux*--arm | linux*--armhf | linux*--armel)
|
||||||
ARI_ASMD=$ARI_ASMD' ariarm'
|
XCFLAGS="$XCFLAGS -DNO_ASM"
|
||||||
ARI_ASMS=$ARI_ASMS' ariarm'
|
;;
|
||||||
fi
|
|
||||||
@@ -3559,8 +3567,9 @@ if [ $CROSS = false ] ; then
|
@@ -2109,7 +2117,7 @@ case " ${XCPPFLAGS} ${XCFLAGS} " in
|
||||||
|
ARI_ASMD=$ARI_ASMD' ari_asm_hppa'
|
||||||
|
ARI_ASMS=$ARI_ASMS' ari_asm_hppa'
|
||||||
|
fi
|
||||||
|
- if [ "$cpu" = arm -o "$cpu" = armhf ] ; then
|
||||||
|
+ if [ "$cpu" = arm -o "$cpu" = armhf -o "$cpu" = armel ] ; then
|
||||||
|
ARI_ASMD=$ARI_ASMD' ari_asm_arm'
|
||||||
|
ARI_ASMS=$ARI_ASMS' ari_asm_arm'
|
||||||
|
fi
|
||||||
|
@@ -4105,8 +4113,9 @@ if [ $CROSS = false ] ; then
|
||||||
echol
|
echol
|
||||||
if [ "${with_dynamic_modules}" != no ]; then
|
if [ "${with_dynamic_modules}" != no ]; then
|
||||||
depends="full install-modules force"
|
depends="full install-modules force"
|
||||||
@ -136,9 +143,9 @@
|
|||||||
echotab "mkdir -p \$(DESTDIR)\$(lisplibdir)/dynmod"
|
echotab "mkdir -p \$(DESTDIR)\$(lisplibdir)/dynmod"
|
||||||
echotab "DESTDIR=\`cd \"\$(DESTDIR)\$(lisplibdir)\"; pwd\` CLISP='./clisp -q -norc' ./clisp-link install \$(MODULES)"
|
echotab "DESTDIR=\`cd \"\$(DESTDIR)\$(lisplibdir)\"; pwd\` CLISP='./clisp -q -norc' ./clisp-link install \$(MODULES)"
|
||||||
echol
|
echol
|
||||||
--- clisp-9c43d428/utils/modprep.lisp
|
--- clisp-2.49.90/utils/modprep.lisp
|
||||||
+++ clisp-9c43d428/utils/modprep.lisp 2017-07-27 12:22:29.421471307 +0000
|
+++ clisp-2.49.90/utils/modprep.lisp 2018-02-12 08:20:34.288915500 +0000
|
||||||
@@ -327,7 +327,7 @@ FOO(bar,baz,zot) ==> FOO; (bar baz zot);
|
@@ -328,7 +328,7 @@ FOO(bar,baz,zot) ==> FOO; (bar baz zot);
|
||||||
((or (char= cc #\_) (char= cc #\-)) (write-char #\_ out))
|
((or (char= cc #\_) (char= cc #\-)) (write-char #\_ out))
|
||||||
(t (format out "_~2,'0x" (char-code cc))))))
|
(t (format out "_~2,'0x" (char-code cc))))))
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
src/_clisp.c | 11 +++++++++++
|
src/_clisp.c | 11 +++++++++++
|
||||||
1 file changed, 11 insertions(+)
|
1 file changed, 11 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/_clisp.c b/src/_clisp.c
|
||||||
--- a/src/_clisp.c
|
--- a/src/_clisp.c
|
||||||
+++ b/src/_clisp.c
|
+++ b/src/_clisp.c
|
||||||
@@ -48,6 +48,11 @@
|
@@ -48,6 +48,11 @@
|
||||||
@ -16,7 +17,7 @@
|
|||||||
#if defined(WIN32_NATIVE)
|
#if defined(WIN32_NATIVE)
|
||||||
# include <windows.h>
|
# include <windows.h>
|
||||||
int shell_quote (char * dest, const char * source);
|
int shell_quote (char * dest, const char * source);
|
||||||
@@ -429,6 +434,12 @@ int main (int argc, char* argv[])
|
@@ -435,6 +440,12 @@ int main (int argc, char* argv[])
|
||||||
}
|
}
|
||||||
#undef W32ERR
|
#undef W32ERR
|
||||||
#else
|
#else
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
|
---
|
||||||
|
src/aclocal.m4 | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/src/aclocal.m4 b/src/aclocal.m4
|
diff --git a/src/aclocal.m4 b/src/aclocal.m4
|
||||||
--- a/src/aclocal.m4
|
--- a/src/aclocal.m4
|
||||||
+++ b/src/aclocal.m4
|
+++ b/src/aclocal.m4
|
||||||
@@ -7517,7 +7517,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
|
@@ -7723,7 +7723,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
|
||||||
dnl When using libtool, the option that works for both libraries and
|
dnl When using libtool, the option that works for both libraries and
|
||||||
dnl executables is -R. The -R options are cumulative.
|
dnl executables is -R. The -R options are cumulative.
|
||||||
for found_dir in $ltrpathdirs; do
|
for found_dir in $ltrpathdirs; do
|
||||||
|
3
clisp-2.49.90.tar.bz2
Normal file
3
clisp-2.49.90.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:47efb9275171a4a469da00bab4935d9d9c9af6892b5c1951cd7d111a4e37e7fa
|
||||||
|
size 8921458
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:2b2f97c69b2800887fe6773c7f27e958c927bb1f2747d4603973cf3dab9dd062
|
|
||||||
size 8659436
|
|
860
clisp-arm.patch
860
clisp-arm.patch
@ -1,860 +0,0 @@
|
|||||||
---
|
|
||||||
src/ariarm.d | 204 +++++++++++++++++++++++++++++------------------------------
|
|
||||||
1 file changed, 102 insertions(+), 102 deletions(-)
|
|
||||||
|
|
||||||
--- src/ariarm.d
|
|
||||||
+++ src/ariarm.d 2017-07-27 12:37:05.517339862 +0000
|
|
||||||
@@ -86,7 +86,7 @@ pc .req r15
|
|
||||||
|
|
||||||
#define C(x) x
|
|
||||||
#define EXPORT(x) .global x
|
|
||||||
-#define GLABEL(x) x:
|
|
||||||
+#define GLABEL(x) .type x STT_FUNC; x:
|
|
||||||
#define LABEL(x) x:
|
|
||||||
#define RRX rrx
|
|
||||||
#define END
|
|
||||||
@@ -187,7 +187,7 @@ GLABEL(mulu32_)
|
|
||||||
LDR a3,[pc,#ptr_mulu32_high-.-8]
|
|
||||||
STR a2,[a3,#0]
|
|
||||||
#endif
|
|
||||||
- MOVS pc,lr
|
|
||||||
+ BX lr
|
|
||||||
|
|
||||||
/* extern uint16 divu_3216_1616_ (uint32 x, uint16 y);
|
|
||||||
entry
|
|
||||||
@@ -243,7 +243,7 @@ GLABEL(divu_3216_1616_)
|
|
||||||
LDR a3,[pc,#ptr_divu_16_rest-.-8] /* save rest so can be picked up later */
|
|
||||||
STR a2,[a3,#0] /* the result is 16 bits */
|
|
||||||
#endif
|
|
||||||
- MOVS pc, lr
|
|
||||||
+ BX lr
|
|
||||||
|
|
||||||
/* extern uint32 divu_6432_3232_ (uint32 xhi, uint32 xlo, uint32 y); | -> Quotient q
|
|
||||||
extern uint32 divu_32_rest; | -> Rest r
|
|
||||||
@@ -278,7 +278,7 @@ GLABEL(divu_6432_3232_)
|
|
||||||
LDR a4,[pc,#ptr_divu_32_rest-.-8]
|
|
||||||
STR a2,[a4,#0] /* divu_32_rest = remainder */
|
|
||||||
#endif
|
|
||||||
- LDMFD sp!, {v1,v2,v3,v4,v5,v6,pc}^
|
|
||||||
+ LDMFD sp!, {v1,v2,v3,v4,v5,v6,pc}
|
|
||||||
|
|
||||||
LABEL(divu_6432_3232_l1)
|
|
||||||
MOV v3, #0 /* s = 0 */
|
|
||||||
@@ -346,7 +346,7 @@ LABEL(divu_6432_3232_l1)
|
|
||||||
LDR a3,[pc,#ptr_divu_32_rest-.-8]
|
|
||||||
STR a2,[a3,#0] /* divu_32_rest = remainder */
|
|
||||||
#endif
|
|
||||||
- LDMFD sp!, {v1,v2,v3,v4,v5,v6,pc}^
|
|
||||||
+ LDMFD sp!, {v1,v2,v3,v4,v5,v6,pc}
|
|
||||||
|
|
||||||
/* extern uintD* copy_loop_up (uintD* sourceptr, uintD* destptr, uintC count);
|
|
||||||
entry
|
|
||||||
@@ -370,7 +370,7 @@ GLABEL(copy_loop_up)
|
|
||||||
LABEL(copy_loop_up_l1)
|
|
||||||
BICS a4,a3,#3 /* set counter to multiple of 4 */
|
|
||||||
MOVEQ a1,a2 /* return addr of last word stored */
|
|
||||||
- MOVEQS pc,lr /* if zero then we're done */
|
|
||||||
+ BXEQ lr /* if zero then we're done */
|
|
||||||
STMFD sp!,{v1,lr} /* save work regs */
|
|
||||||
LABEL(copy_loop_up_l2)
|
|
||||||
LDMIA a1!,{a3,v1,ip,lr} /* copy 4 words in one go */
|
|
||||||
@@ -380,7 +380,7 @@ LABEL(copy_loop_up_l2)
|
|
||||||
STMGEIA a2!,{a3,v1,ip,lr} /* 4 more words */
|
|
||||||
BGT copy_loop_up_l2 /* and loop */
|
|
||||||
MOV a1,a2 /* return addr of last word stored */
|
|
||||||
- LDMFD sp!,{v1,pc}^ /* restore work regs and return */
|
|
||||||
+ LDMFD sp!,{v1,pc} /* restore work regs and return */
|
|
||||||
|
|
||||||
/* extern uintD* copy_loop_down (uintD* sourceptr, uintD* destptr, uintC count);
|
|
||||||
entry
|
|
||||||
@@ -404,7 +404,7 @@ GLABEL(copy_loop_down)
|
|
||||||
LABEL(copy_loop_down_l1)
|
|
||||||
BICS a4,a3,#3 /* set counter to multiple of 4 */
|
|
||||||
MOVEQ a1,a2 /* return addr of last word stored */
|
|
||||||
- MOVEQS pc,lr /* if zero then we're done */
|
|
||||||
+ BXEQ lr /* if zero then we're done */
|
|
||||||
STMFD sp!,{v1,lr} /* save work regs */
|
|
||||||
LABEL(copy_loop_down_l2)
|
|
||||||
LDMDB a1!,{a3,v1,ip,lr} /* copy 4 words in one go */
|
|
||||||
@@ -414,7 +414,7 @@ LABEL(copy_loop_down_l2)
|
|
||||||
STMGEDB a2!,{a3,v1,ip,lr} /* 4 more words */
|
|
||||||
BGT copy_loop_down_l2 /* and loop */
|
|
||||||
MOV a1,a2 /* return addr of last word stored */
|
|
||||||
- LDMFD sp!,{v1,pc}^ /* restore work regs and return */
|
|
||||||
+ LDMFD sp!,{v1,pc} /* restore work regs and return */
|
|
||||||
|
|
||||||
/* extern uintD* clear_loop_up (uintD* destptr, uintC count);
|
|
||||||
entry
|
|
||||||
@@ -446,7 +446,7 @@ GLABEL(fill_loop_up)
|
|
||||||
STRGT a3,[a1],#4
|
|
||||||
LABEL(fill_loop_up_l1)
|
|
||||||
BICS a4,a2,#3 /* set counter to multiple of 4 */
|
|
||||||
- MOVEQS pc,lr /* if zero then we're done */
|
|
||||||
+ BXEQ lr /* if zero then we're done */
|
|
||||||
STMFD sp!,{v1,lr} /* save work regs */
|
|
||||||
MOV v1,a3 /* copy filler to three other */
|
|
||||||
MOV ip,a3 /* registers */
|
|
||||||
@@ -456,7 +456,7 @@ LABEL(fill_loop_up_l2)
|
|
||||||
SUBS a4,a4,#8 /* decrement counter by 8 */
|
|
||||||
STMGEIA a1!,{a3,v1,ip,lr} /* if count still positive then store 4 */
|
|
||||||
BGT fill_loop_up_l2 /* more and loop */
|
|
||||||
- LDMFD sp!,{v1,pc}^ /* restore work regs and return */
|
|
||||||
+ LDMFD sp!,{v1,pc} /* restore work regs and return */
|
|
||||||
|
|
||||||
|
|
||||||
/* extern uintD* clear_loop_down (uintD* destptr, uintC count);
|
|
||||||
@@ -489,7 +489,7 @@ GLABEL(fill_loop_down)
|
|
||||||
STRGT a3,[a1,#-4]!
|
|
||||||
LABEL(fill_loop_down_l1)
|
|
||||||
BICS a4,a2,#3 /* set counter to multiple of 4 */
|
|
||||||
- MOVEQS pc,lr /* if zero then we're done */
|
|
||||||
+ BXEQ lr /* if zero then we're done */
|
|
||||||
STMFD sp!,{v1,lr} /* save work regs */
|
|
||||||
MOV v1,a3 /* copy filler to three other */
|
|
||||||
MOV ip,a3 /* registers */
|
|
||||||
@@ -499,7 +499,7 @@ LABEL(fill_loop_down_l2)
|
|
||||||
SUBS a4,a4,#8 /* decrement counter by 8 */
|
|
||||||
STMGEDB a1!,{a3,v1,ip,lr} /* if count still positive then store 4 */
|
|
||||||
BGT fill_loop_down_l2 /* more and loop */
|
|
||||||
- LDMFD sp!,{v1,pc}^ /* restore work regs and return */
|
|
||||||
+ LDMFD sp!,{v1,pc} /* restore work regs and return */
|
|
||||||
|
|
||||||
/* extern void or_loop_up (uintD* xptr, uintD* yptr, uintC count);
|
|
||||||
entry
|
|
||||||
@@ -529,7 +529,7 @@ GLABEL(or_loop_up)
|
|
||||||
STRGT ip,[a1],#4
|
|
||||||
LABEL(or_loop_up_l1)
|
|
||||||
BICS a4,a3,#3 /* set counter to multiple of 4 */
|
|
||||||
- MOVEQS pc,lr /* if zero then we're done */
|
|
||||||
+ BXEQ lr /* if zero then we're done */
|
|
||||||
STMFD sp!,{v1-v5,lr} /* save work regs */
|
|
||||||
LABEL(or_loop_up_l2)
|
|
||||||
LDMIA a2!,{a3,v1,v2,ip} /* load 4 words in one go */
|
|
||||||
@@ -541,7 +541,7 @@ LABEL(or_loop_up_l2)
|
|
||||||
STMIA a1!,{v3,v4,v5,lr} /* store 4 results */
|
|
||||||
SUBS a4,a4,#4 /* decrement counter by 4 */
|
|
||||||
BGT or_loop_up_l2 /* if count still positive then loop */
|
|
||||||
- LDMFD sp!,{v1-v5,pc}^ /* restore work regs and return */
|
|
||||||
+ LDMFD sp!,{v1-v5,pc} /* restore work regs and return */
|
|
||||||
|
|
||||||
/* extern void xor_loop_up (uintD* xptr, uintD* yptr, uintC count);
|
|
||||||
entry
|
|
||||||
@@ -571,7 +571,7 @@ GLABEL(xor_loop_up)
|
|
||||||
STRGT ip,[a1],#4
|
|
||||||
LABEL(xor_loop_up_l1)
|
|
||||||
BICS a4,a3,#3 /* set counter to multiple of 4 */
|
|
||||||
- MOVEQS pc,lr /* if zero then we're done */
|
|
||||||
+ BXEQ lr /* if zero then we're done */
|
|
||||||
STMFD sp!,{v1-v5,lr} /* save work regs */
|
|
||||||
LABEL(xor_loop_up_l2)
|
|
||||||
LDMIA a2!,{a3,v1,v2,ip} /* load 4 words in one go */
|
|
||||||
@@ -583,7 +583,7 @@ LABEL(xor_loop_up_l2)
|
|
||||||
STMIA a1!,{v3,v4,v5,lr} /* store 4 results */
|
|
||||||
SUBS a4,a4,#4 /* decrement counter by 4 */
|
|
||||||
BGT xor_loop_up_l2 /* if count still positive then loop */
|
|
||||||
- LDMFD sp!,{v1-v5,pc}^ /* restore work regs and return */
|
|
||||||
+ LDMFD sp!,{v1-v5,pc} /* restore work regs and return */
|
|
||||||
|
|
||||||
/* extern void and_loop_up (uintD* xptr, uintD* yptr, uintC count);
|
|
||||||
entry
|
|
||||||
@@ -613,7 +613,7 @@ GLABEL(and_loop_up)
|
|
||||||
STRGT ip,[a1],#4
|
|
||||||
LABEL(and_loop_up_l1)
|
|
||||||
BICS a4,a3,#3 /* set counter to multiple of 4 */
|
|
||||||
- MOVEQS pc,lr /* if zero then we're done */
|
|
||||||
+ BXEQ lr /* if zero then we're done */
|
|
||||||
STMFD sp!,{v1-v5,lr} /* save work regs */
|
|
||||||
LABEL(and_loop_up_l2)
|
|
||||||
LDMIA a2!,{a3,v1,v2,ip} /* load 4 words in one go */
|
|
||||||
@@ -625,7 +625,7 @@ LABEL(and_loop_up_l2)
|
|
||||||
STMIA a1!,{v3,v4,v5,lr} /* store 4 results */
|
|
||||||
SUBS a4,a4,#4 /* decrement counter by 4 */
|
|
||||||
BGT and_loop_up_l2 /* if count still positive then loop */
|
|
||||||
- LDMFD sp!,{v1-v5,pc}^ /* restore work regs and return */
|
|
||||||
+ LDMFD sp!,{v1-v5,pc} /* restore work regs and return */
|
|
||||||
|
|
||||||
/* extern void eqv_loop_up (uintD* xptr, uintD* yptr, uintC count);
|
|
||||||
entry
|
|
||||||
@@ -659,7 +659,7 @@ GLABEL(eqv_loop_up)
|
|
||||||
STRGT ip,[a1],#4
|
|
||||||
LABEL(eqv_loop_up_l1)
|
|
||||||
BICS a4,a3,#3 /* set counter to multiple of 4 */
|
|
||||||
- MOVEQS pc,lr /* if zero then we're done */
|
|
||||||
+ BXEQ lr /* if zero then we're done */
|
|
||||||
STMFD sp!,{v1-v5,lr} /* save work regs */
|
|
||||||
LABEL(eqv_loop_up_l2)
|
|
||||||
LDMIA a2!,{a3,v1,v2,ip} /* load 4 words in one go */
|
|
||||||
@@ -675,7 +675,7 @@ LABEL(eqv_loop_up_l2)
|
|
||||||
STMIA a1!,{v3,v4,v5,lr} /* store 4 results */
|
|
||||||
SUBS a4,a4,#4 /* decrement counter by 4 */
|
|
||||||
BGT eqv_loop_up_l2 /* if count still positive then loop */
|
|
||||||
- LDMFD sp!,{v1-v5,pc}^ /* restore work regs and return */
|
|
||||||
+ LDMFD sp!,{v1-v5,pc} /* restore work regs and return */
|
|
||||||
|
|
||||||
/* extern void nand_loop_up (uintD* xptr, uintD* yptr, uintC count);
|
|
||||||
entry
|
|
||||||
@@ -709,7 +709,7 @@ GLABEL(nand_loop_up)
|
|
||||||
STRGT ip,[a1],#4
|
|
||||||
LABEL(nand_loop_up_l1)
|
|
||||||
BICS a4,a3,#3 /* set counter to multiple of 4 */
|
|
||||||
- MOVEQS pc,lr /* if zero then we're done */
|
|
||||||
+ BXEQ lr /* if zero then we're done */
|
|
||||||
STMFD sp!,{v1-v5,lr} /* save work regs */
|
|
||||||
LABEL(nand_loop_up_l2)
|
|
||||||
LDMIA a2!,{a3,v1,v2,ip} /* load 4 words in one go */
|
|
||||||
@@ -725,7 +725,7 @@ LABEL(nand_loop_up_l2)
|
|
||||||
STMIA a1!,{v3,v4,v5,lr} /* store 4 results */
|
|
||||||
SUBS a4,a4,#4 /* decrement counter by 4 */
|
|
||||||
BGT nand_loop_up_l2 /* if count still positive then loop */
|
|
||||||
- LDMFD sp!,{v1-v5,pc}^ /* restore work regs and return */
|
|
||||||
+ LDMFD sp!,{v1-v5,pc} /* restore work regs and return */
|
|
||||||
|
|
||||||
/* extern void nor_loop_up (uintD* xptr, uintD* yptr, uintC count);
|
|
||||||
entry
|
|
||||||
@@ -759,7 +759,7 @@ GLABEL(nor_loop_up)
|
|
||||||
STRGT ip,[a1],#4
|
|
||||||
LABEL(nor_loop_up_l1)
|
|
||||||
BICS a4,a3,#3 /* set counter to multiple of 4 */
|
|
||||||
- MOVEQS pc,lr /* if zero then we're done */
|
|
||||||
+ BXEQ lr /* if zero then we're done */
|
|
||||||
STMFD sp!,{v1-v5,lr} /* save work regs */
|
|
||||||
LABEL(nor_loop_up_l2)
|
|
||||||
LDMIA a2!,{a3,v1,v2,ip} /* load 4 words in one go */
|
|
||||||
@@ -775,7 +775,7 @@ LABEL(nor_loop_up_l2)
|
|
||||||
STMIA a1!,{v3,v4,v5,lr} /* store 4 results */
|
|
||||||
SUBS a4,a4,#4 /* decrement counter by 4 */
|
|
||||||
BGT nor_loop_up_l2 /* if count still positive then loop */
|
|
||||||
- LDMFD sp!,{v1-v5,pc}^ /* restore work regs and return */
|
|
||||||
+ LDMFD sp!,{v1-v5,pc} /* restore work regs and return */
|
|
||||||
|
|
||||||
/* extern void andc2_loop_up (uintD* xptr, uintD* yptr, uintC count);
|
|
||||||
entry
|
|
||||||
@@ -805,7 +805,7 @@ GLABEL(andc2_loop_up)
|
|
||||||
STRGT ip,[a1],#4
|
|
||||||
LABEL(andc2_loop_up_l1)
|
|
||||||
BICS a4,a3,#3 /* set counter to multiple of 4 */
|
|
||||||
- MOVEQS pc,lr /* if zero then we're done */
|
|
||||||
+ BXEQ lr /* if zero then we're done */
|
|
||||||
STMFD sp!,{v1-v5,lr} /* save work regs */
|
|
||||||
LABEL(andc2_loop_up_l2)
|
|
||||||
LDMIA a2!,{a3,v1,v2,ip} /* load 4 words in one go */
|
|
||||||
@@ -817,7 +817,7 @@ LABEL(andc2_loop_up_l2)
|
|
||||||
STMIA a1!,{v3,v4,v5,lr} /* store 4 results */
|
|
||||||
SUBS a4,a4,#4 /* decrement counter by 4 */
|
|
||||||
BGT andc2_loop_up_l2 /* if count still positive then loop */
|
|
||||||
- LDMFD sp!,{v1-v5,pc}^ /* restore work regs and return */
|
|
||||||
+ LDMFD sp!,{v1-v5,pc} /* restore work regs and return */
|
|
||||||
|
|
||||||
/* extern void orc2_loop_up (uintD* xptr, uintD* yptr, uintC count);
|
|
||||||
entry
|
|
||||||
@@ -851,7 +851,7 @@ GLABEL(orc2_loop_up)
|
|
||||||
STRGT ip,[a1],#4
|
|
||||||
LABEL(orc2_loop_up_l1)
|
|
||||||
BICS a4,a3,#3 /* set counter to multiple of 4 */
|
|
||||||
- MOVEQS pc,lr /* if zero then we're done */
|
|
||||||
+ BXEQ lr /* if zero then we're done */
|
|
||||||
STMFD sp!,{v1-v5,lr} /* save work regs */
|
|
||||||
LABEL(orc2_loop_up_l2)
|
|
||||||
LDMIA a2!,{a3,v1,v2,ip} /* load 4 words in one go */
|
|
||||||
@@ -867,7 +867,7 @@ LABEL(orc2_loop_up_l2)
|
|
||||||
STMIA a1!,{v3,v4,v5,lr} /* store 4 results */
|
|
||||||
SUBS a4,a4,#4 /* decrement counter by 4 */
|
|
||||||
BGT orc2_loop_up_l2 /* if count still positive then loop */
|
|
||||||
- LDMFD sp!,{v1-v5,pc}^ /* restore work regs and return */
|
|
||||||
+ LDMFD sp!,{v1-v5,pc} /* restore work regs and return */
|
|
||||||
|
|
||||||
/* extern void not_loop_up (uintD* xptr, uintC count);
|
|
||||||
entry
|
|
||||||
@@ -893,7 +893,7 @@ GLABEL(not_loop_up)
|
|
||||||
STRGT a3,[a1],#4
|
|
||||||
LABEL(not_loop_up_l1)
|
|
||||||
BICS a4,a2,#3 /* set counter to multiple of 4 */
|
|
||||||
- MOVEQS pc,lr /* if zero then we're done */
|
|
||||||
+ BXEQ lr /* if zero then we're done */
|
|
||||||
STMFD sp!,{lr} /* save work regs */
|
|
||||||
LABEL(not_loop_up_l2)
|
|
||||||
LDMIA a1,{a2,a3,ip,lr} /* load 4 words in one go,NO writeback */
|
|
||||||
@@ -904,7 +904,7 @@ LABEL(not_loop_up_l2)
|
|
||||||
STMIA a1!,{a2,a3,ip,lr} /* store 4 results */
|
|
||||||
SUBS a4,a4,#4 /* decrement counter by 4 */
|
|
||||||
BGT not_loop_up_l2 /* if count still positive then loop */
|
|
||||||
- LDMFD sp!,{pc}^ /* restore work regs and return */
|
|
||||||
+ LDMFD sp!,{pc} /* restore work regs and return */
|
|
||||||
|
|
||||||
/* extern void and_test_loop_up (uintD* xptr, uintD* yptr, uintC count);
|
|
||||||
entry
|
|
||||||
@@ -923,13 +923,13 @@ GLABEL(and_test_loop_up)
|
|
||||||
LDR ip,[a1],#4 /* to align the total to a multiple */
|
|
||||||
TST ip,a4 /* of 4 words */
|
|
||||||
MOVNE a1,#1 /* return true if AND_TEST ok */
|
|
||||||
- MOVNES pc,lr
|
|
||||||
+ BXNE lr
|
|
||||||
BCC and_test_loop_up_l1 /* better to branch than skip instrs. */
|
|
||||||
LDRGE a4,[a2],#4
|
|
||||||
LDRGE ip,[a1],#4
|
|
||||||
TSTGE ip,a4
|
|
||||||
MOVNE a1,#1
|
|
||||||
- MOVNES pc,lr
|
|
||||||
+ BXNE lr
|
|
||||||
ANDS a4,a3,#3
|
|
||||||
CMP a4,#2
|
|
||||||
BLE and_test_loop_up_l1 /* better to branch than skip instrs. */
|
|
||||||
@@ -937,11 +937,11 @@ GLABEL(and_test_loop_up)
|
|
||||||
LDRGT ip,[a1],#4
|
|
||||||
TSTGT ip,a4
|
|
||||||
MOVNE a1,#1
|
|
||||||
- MOVNES pc,lr
|
|
||||||
+ BXNE lr
|
|
||||||
LABEL(and_test_loop_up_l1)
|
|
||||||
BICS a4,a3,#3 /* set counter to multiple of 4 */
|
|
||||||
MOVEQ a1,#0 /* return false */
|
|
||||||
- MOVEQS pc,lr /* if zero then we're done */
|
|
||||||
+ BXEQ lr /* if zero then we're done */
|
|
||||||
STMFD sp!,{v1-v6,lr} /* save work regs */
|
|
||||||
MOV v6,a1 /* move xptr to v6 */
|
|
||||||
MOV a1,#1 /* set result to true */
|
|
||||||
@@ -952,11 +952,11 @@ LABEL(and_test_loop_up_l2)
|
|
||||||
TSTEQ v4,v1
|
|
||||||
TSTEQ v5,v2
|
|
||||||
TSTEQ lr,ip
|
|
||||||
- LDMNEFD sp!,{v1-v6,pc}^
|
|
||||||
+ LDMNEFD sp!,{v1-v6,pc}
|
|
||||||
SUBS a4,a4,#4 /* decrement counter by 4 */
|
|
||||||
BGT and_test_loop_up_l2 /* if count still positive then loop */
|
|
||||||
MOV a1,#0
|
|
||||||
- LDMFD sp!,{v1-v6,pc}^ /* restore work regs and return */
|
|
||||||
+ LDMFD sp!,{v1-v6,pc} /* restore work regs and return */
|
|
||||||
|
|
||||||
/* extern void test_loop_up (uintD* xptr, uintC count);
|
|
||||||
entry
|
|
||||||
@@ -973,21 +973,21 @@ GLABEL(test_loop_up)
|
|
||||||
BEQ test_loop_up_l1 /* yup, so branch */
|
|
||||||
LDR a4,[ip],#4 /* TEST the first 1-3 words */
|
|
||||||
TEQ a4,#0 /* align the total to a multiple of 4 */
|
|
||||||
- MOVNES pc,lr /* return true if AND_TEST ok */
|
|
||||||
+ BXNE lr /* return true if AND_TEST ok */
|
|
||||||
CMP a3,#2
|
|
||||||
BLT test_loop_up_l1 /* need to branch 'cos PSR set */
|
|
||||||
LDRGE a4,[ip],#4 /* when checking against zero */
|
|
||||||
TEQGE a4,#0
|
|
||||||
- MOVNES pc,lr
|
|
||||||
+ BXNE lr
|
|
||||||
CMP a3,#2
|
|
||||||
BLE test_loop_up_l1 /* need to branch 'cos PSR set */
|
|
||||||
LDRGT a4,[ip],#4 /* when checking against zero */
|
|
||||||
TEQGT a4,#0
|
|
||||||
- MOVNES pc,lr
|
|
||||||
+ BXNE lr
|
|
||||||
LABEL(test_loop_up_l1)
|
|
||||||
BICS a4,a2,#3 /* set counter to multiple of 4 */
|
|
||||||
MOVEQ a1,#0 /* return false */
|
|
||||||
- MOVEQS pc,lr /* if zero then we're done */
|
|
||||||
+ BXEQ lr /* if zero then we're done */
|
|
||||||
STMFD sp!,{v1,lr} /* save work regs */
|
|
||||||
LABEL(test_loop_up_l2)
|
|
||||||
LDMIA ip!,{a2,a3,v1,lr} /* load 4 words in one go */
|
|
||||||
@@ -995,11 +995,11 @@ LABEL(test_loop_up_l2)
|
|
||||||
TEQEQ a3,#0
|
|
||||||
TEQEQ v1,#0
|
|
||||||
TEQEQ lr,#0
|
|
||||||
- LDMNEFD sp!,{v1,pc}^
|
|
||||||
+ LDMNEFD sp!,{v1,pc}
|
|
||||||
SUBS a4,a4,#4 /* decrement counter by 4 */
|
|
||||||
BGT test_loop_up_l2 /* if count still positive then loop */
|
|
||||||
MOV a1,#0
|
|
||||||
- LDMFD sp!,{v1,pc}^ /* restore work regs and return */
|
|
||||||
+ LDMFD sp!,{v1,pc} /* restore work regs and return */
|
|
||||||
|
|
||||||
/* extern void compare_loop_up (uintD* xptr, uintD* yptr, uintC count);
|
|
||||||
entry
|
|
||||||
@@ -1021,7 +1021,7 @@ GLABEL(compare_loop_up)
|
|
||||||
CMP ip,a4 /* of 4 words */
|
|
||||||
MVNLO a1,#0 /* x < y -> -1 */
|
|
||||||
MOVHI a1,#1 /* x > y -> +1 */
|
|
||||||
- MOVNES pc,lr /* and return result if not equal */
|
|
||||||
+ BXNE lr /* and return result if not equal */
|
|
||||||
ANDS a4,a3,#3
|
|
||||||
CMP a4,#2
|
|
||||||
BLT compare_loop_up_l1 /* need to branch 'cos PSR used */
|
|
||||||
@@ -1030,7 +1030,7 @@ GLABEL(compare_loop_up)
|
|
||||||
CMP ip,a4
|
|
||||||
MVNLO a1,#0
|
|
||||||
MOVHI a1,#1
|
|
||||||
- MOVNES pc,lr
|
|
||||||
+ BXNE lr
|
|
||||||
ANDS a4,a3,#3
|
|
||||||
CMP a4,#2
|
|
||||||
BLE compare_loop_up_l1 /* need to branch 'cos PSR used */
|
|
||||||
@@ -1039,11 +1039,11 @@ GLABEL(compare_loop_up)
|
|
||||||
CMP ip,a4
|
|
||||||
MVNLO a1,#0
|
|
||||||
MOVHI a1,#1
|
|
||||||
- MOVNES pc,lr
|
|
||||||
+ BXNE lr
|
|
||||||
LABEL(compare_loop_up_l1)
|
|
||||||
BICS a4,a3,#3 /* set counter to multiple of 4 */
|
|
||||||
MOVEQ a1,#0 /* xptr[] == yptr[] -> 0 */
|
|
||||||
- MOVEQS pc,lr /* if zero then we're done */
|
|
||||||
+ BXEQ lr /* if zero then we're done */
|
|
||||||
STMFD sp!,{v1-v6,lr} /* save work regs */
|
|
||||||
MOV v6,a1 /* move xptr to v6 */
|
|
||||||
MOV a1,#1 /* set result to +1 */
|
|
||||||
@@ -1055,11 +1055,11 @@ LABEL(compare_loop_up_l2)
|
|
||||||
CMPEQ v5,v2
|
|
||||||
CMPEQ lr,ip
|
|
||||||
MVNLO a1,#0 /* x < y -> -1 (a1 already holds +1) */
|
|
||||||
- LDMNEFD sp!,{v1-v6,pc}^
|
|
||||||
+ LDMNEFD sp!,{v1-v6,pc}
|
|
||||||
SUBS a4,a4,#4 /* decrement counter by 4 */
|
|
||||||
BGT compare_loop_up_l2 /* if count still positive then loop */
|
|
||||||
MOV a1,#0
|
|
||||||
- LDMFD sp!,{v1-v6,pc}^ /* restore work regs and return */
|
|
||||||
+ LDMFD sp!,{v1-v6,pc} /* restore work regs and return */
|
|
||||||
|
|
||||||
/* extern uintD addto_loop_down (uintD* sourceptr, uintD* destptr, uintC count);
|
|
||||||
entry
|
|
||||||
@@ -1111,11 +1111,11 @@ LABEL(add_loop_down_l0) /* at l
|
|
||||||
BICS a4,a4,#3 /* set counter to multiple of 4 */
|
|
||||||
BNE add_loop_down_l3 /* branch if more adds to do */
|
|
||||||
ADCEQ a1,a4,a4 /* set result to Carry (a4 is 0) */
|
|
||||||
- LDMEQFD sp!,{v6,pc}^ /* and return */
|
|
||||||
+ LDMEQFD sp!,{v6,pc} /* and return */
|
|
||||||
LABEL(add_loop_down_l1)
|
|
||||||
BICS a4,a4,#3 /* set counter to multiple of 4 */
|
|
||||||
MOVEQ a1,#0 /* no adds, so C = 0 */
|
|
||||||
- MOVEQS pc,lr /* if zero then we're done */
|
|
||||||
+ BXEQ lr /* if zero then we're done */
|
|
||||||
CMN a4,#0 /* clear carry bit */
|
|
||||||
STMFD sp!,{v6,lr}
|
|
||||||
LABEL(add_loop_down_l3)
|
|
||||||
@@ -1132,7 +1132,7 @@ LABEL(add_loop_down_l2)
|
|
||||||
TEQ a4,#0 /* are we done ? */
|
|
||||||
BNE add_loop_down_l2 /* if count non-zero then loop */
|
|
||||||
ADC a1,a4,a4 /* set result to Carry (a4 is 0) */
|
|
||||||
- LDMFD sp!,{v1-v6,pc}^ /* restore work regs and return */
|
|
||||||
+ LDMFD sp!,{v1-v6,pc} /* restore work regs and return */
|
|
||||||
|
|
||||||
/* extern uintD inc_loop_down (uintD* ptr, uintC count);
|
|
||||||
entry
|
|
||||||
@@ -1150,11 +1150,11 @@ GLABEL(inc_loop_down)
|
|
||||||
ADDS a4,a4,#1 /* align the total to a multiple of 2 */
|
|
||||||
STR a4,[a1]
|
|
||||||
MOVNE a1,#0 /* set result to 0 */
|
|
||||||
- MOVNES pc,lr /* return 0 if non-zero result */
|
|
||||||
+ BXNE lr /* return 0 if non-zero result */
|
|
||||||
LABEL(inc_loop_down_l1)
|
|
||||||
BICS a4,a2,#1 /* set counter to multiple of 2 */
|
|
||||||
MOVEQ a1,#1 /* return 1 */
|
|
||||||
- MOVEQS pc,lr /* if zero then we're done */
|
|
||||||
+ BXEQ lr /* if zero then we're done */
|
|
||||||
MOV ip,a1 /* move ptr to ip */
|
|
||||||
MOV a1,#0 /* set result to 0 */
|
|
||||||
ANDS a3,a4,#3
|
|
||||||
@@ -1163,10 +1163,10 @@ LABEL(inc_loop_down_l1)
|
|
||||||
ADDS a3,a3,#1 /* INC the two words */
|
|
||||||
ADDEQS a2,a2,#1 /* stopping when first word non-zero */
|
|
||||||
STMDB ip!,{a2,a3} /* store 2 results */
|
|
||||||
- MOVNES pc,lr /* return 0 if any result non-zero */
|
|
||||||
+ BXNE lr /* return 0 if any result non-zero */
|
|
||||||
SUBS a4,a4,#2 /* decrement counter by 2 */
|
|
||||||
MOVEQ a1,#1 /* if finished loop then */
|
|
||||||
- MOVEQS pc,lr /* return 1 */
|
|
||||||
+ BXEQ lr /* return 1 */
|
|
||||||
LABEL(inc_loop_down_l3) /* now a multiple of 4 words */
|
|
||||||
STMFD sp!,{v1,lr} /* save work regs */
|
|
||||||
LABEL(inc_loop_down_l2)
|
|
||||||
@@ -1176,11 +1176,11 @@ LABEL(inc_loop_down_l2)
|
|
||||||
ADDEQS a3,a3,#1
|
|
||||||
ADDEQS a2,a2,#1
|
|
||||||
STMDB ip!,{a2,a3,v1,lr} /* store 4 results */
|
|
||||||
- LDMNEFD sp!,{v1,pc}^ /* return 0 if any result non-zero */
|
|
||||||
+ LDMNEFD sp!,{v1,pc} /* return 0 if any result non-zero */
|
|
||||||
SUBS a4,a4,#4 /* decrement counter by 4 */
|
|
||||||
BGT inc_loop_down_l2 /* if count still positive then loop */
|
|
||||||
MOV a1,#1
|
|
||||||
- LDMFD sp!,{v1,pc}^ /* restore work regs and return 1 */
|
|
||||||
+ LDMFD sp!,{v1,pc} /* restore work regs and return 1 */
|
|
||||||
|
|
||||||
/* extern uintD sub_loop_down (uintD* sourceptr1, uintD* sourceptr2, uintD* destptr, uintC count);
|
|
||||||
entry
|
|
||||||
@@ -1206,7 +1206,7 @@ GLABEL(sub_loop_down)
|
|
||||||
LABEL(sub_loop_down_l4) /* drop through for better instr. timings */
|
|
||||||
BICS a4,a4,#3 /* set counter to multiple of 4 */
|
|
||||||
SBCEQ a1,a4,a4 /* set result to Carry (a4 is 0) */
|
|
||||||
- LDMEQFD sp!,{v6,pc}^ /* and return */
|
|
||||||
+ LDMEQFD sp!,{v6,pc} /* and return */
|
|
||||||
STMFD sp!,{v1-v5} /* save work regs */
|
|
||||||
B sub_loop_down_l2 /* branch if more subtracts to do */
|
|
||||||
LABEL(sub_loop_down_l0)
|
|
||||||
@@ -1224,7 +1224,7 @@ LABEL(sub_loop_down_l0)
|
|
||||||
LABEL(sub_loop_down_l1)
|
|
||||||
BICS a4,a4,#3 /* set counter to multiple of 4 */
|
|
||||||
MOVEQ a1,#0 /* no subtracts, so C = 0 */
|
|
||||||
- MOVEQS pc,lr /* if zero then we're done */
|
|
||||||
+ BXEQ lr /* if zero then we're done */
|
|
||||||
CMP a4,#0 /* set carry bit, since a4 > 0 */
|
|
||||||
STMFD sp!,{v1-v6,lr} /* save work regs */
|
|
||||||
LABEL(sub_loop_down_l2)
|
|
||||||
@@ -1239,7 +1239,7 @@ LABEL(sub_loop_down_l2)
|
|
||||||
TEQ a4,#0 /* are we done ? */
|
|
||||||
BNE sub_loop_down_l2 /* if count non-zero then loop */
|
|
||||||
SBC a1,a4,a4 /* set result to Carry (a4 is 0) */
|
|
||||||
- LDMFD sp!,{v1-v6,pc}^ /* restore work regs and return */
|
|
||||||
+ LDMFD sp!,{v1-v6,pc} /* restore work regs and return */
|
|
||||||
|
|
||||||
/* extern uintD subx_loop_down (uintD* sourceptr1, uintD* sourceptr2, uintD* destptr, uintC count, uintD carry);
|
|
||||||
entry
|
|
||||||
@@ -1269,7 +1269,7 @@ LABEL(subx_loop_down_lsub)
|
|
||||||
LABEL(subx_loop_down_l4) /* drop through for better instr. timings */
|
|
||||||
BICS a4,a4,#3 /* set counter to multiple of 4 */
|
|
||||||
SBCEQ a1,a4,a4 /* set result to Carry (a4 is 0) */
|
|
||||||
- LDMEQFD sp!,{v6,pc}^ /* and return */
|
|
||||||
+ LDMEQFD sp!,{v6,pc} /* and return */
|
|
||||||
STMFD sp!,{v1-v5} /* save work regs */
|
|
||||||
B subx_loop_down_l2 /* branch if more subtracts to do */
|
|
||||||
LABEL(subx_loop_down_l0)
|
|
||||||
@@ -1287,7 +1287,7 @@ LABEL(subx_loop_down_l0)
|
|
||||||
LABEL(subx_loop_down_l1)
|
|
||||||
BICS a4,a4,#3 /* set counter to multiple of 4 */
|
|
||||||
SBCEQ a1,a4,a4 /* set result to Carry (a4 is 0) */
|
|
||||||
- MOVEQS pc,lr /* if zero then we're done */
|
|
||||||
+ BXEQ lr /* if zero then we're done */
|
|
||||||
STMFD sp!,{v1-v6,lr} /* save work regs */
|
|
||||||
LABEL(subx_loop_down_l2)
|
|
||||||
LDMDB a2!,{v1,v2,v3,ip} /* load 4 words in one go */
|
|
||||||
@@ -1301,7 +1301,7 @@ LABEL(subx_loop_down_l2)
|
|
||||||
TEQ a4,#0 /* are we done ? */
|
|
||||||
BNE subx_loop_down_l2 /* if count non-zero then loop */
|
|
||||||
SBC a1,a4,a4 /* set result to Carry (a4 is 0) */
|
|
||||||
- LDMFD sp!,{v1-v6,pc}^ /* restore work regs and return */
|
|
||||||
+ LDMFD sp!,{v1-v6,pc} /* restore work regs and return */
|
|
||||||
|
|
||||||
/* extern uintD subfrom_loop_down (uintD* sourceptr, uintD* destptr, uintC count);
|
|
||||||
entry
|
|
||||||
@@ -1326,7 +1326,7 @@ GLABEL(subfrom_loop_down)
|
|
||||||
LABEL(subfrom_loop_down_l4) /* drop through for better instr. timings */
|
|
||||||
BICS a4,a3,#3 /* set counter to multiple of 4 */
|
|
||||||
SBCEQ a1,a4,a4 /* set result to Carry (a4 is 0) */
|
|
||||||
- LDMEQFD sp!,{pc}^ /* and return */
|
|
||||||
+ LDMEQFD sp!,{pc} /* and return */
|
|
||||||
STMFD sp!,{v1-v5} /* save work regs */
|
|
||||||
B subfrom_loop_down_l2 /* branch if more subtracts to do */
|
|
||||||
LABEL(subfrom_loop_down_l0)
|
|
||||||
@@ -1344,7 +1344,7 @@ LABEL(subfrom_loop_down_l0)
|
|
||||||
LABEL(subfrom_loop_down_l1)
|
|
||||||
BICS a4,a3,#3 /* set counter to multiple of 4 */
|
|
||||||
MOVEQ a1,#0 /* no subtracts, so C = 0 */
|
|
||||||
- MOVEQS pc,lr /* if zero then we're done */
|
|
||||||
+ BXEQ lr /* if zero then we're done */
|
|
||||||
CMP a4,#0 /* set carry bit, since a4 > 0 */
|
|
||||||
STMFD sp!,{v1-v5,lr} /* save work regs */
|
|
||||||
LABEL(subfrom_loop_down_l2)
|
|
||||||
@@ -1359,7 +1359,7 @@ LABEL(subfrom_loop_down_l2)
|
|
||||||
TEQ a4,#0 /* are we done ? */
|
|
||||||
BNE subfrom_loop_down_l2 /* if count non-zero then loop */
|
|
||||||
SBC a1,a4,a4 /* set result to Carry (a4 is 0) */
|
|
||||||
- LDMFD sp!,{v1-v5,pc}^ /* restore work regs and return */
|
|
||||||
+ LDMFD sp!,{v1-v5,pc} /* restore work regs and return */
|
|
||||||
|
|
||||||
/* extern uintD dec_loop_down (uintD* ptr, uintC count);
|
|
||||||
entry
|
|
||||||
@@ -1377,11 +1377,11 @@ GLABEL(dec_loop_down)
|
|
||||||
SUBS a4,a4,#1 /* align the total to a multiple of 2 */
|
|
||||||
STR a4,[a1]
|
|
||||||
MOVCS a1,#0 /* set result to 0 */
|
|
||||||
- MOVCSS pc,lr /* return 0 if non-zero result */
|
|
||||||
+ BXCS lr /* return 0 if non-zero result */
|
|
||||||
LABEL(dec_loop_down_l1)
|
|
||||||
BICS a4,a2,#1 /* set counter to multiple of 2 */
|
|
||||||
MVNEQ a1,#0 /* return -1 */
|
|
||||||
- MOVEQS pc,lr /* if zero then we're done */
|
|
||||||
+ BXEQ lr /* if zero then we're done */
|
|
||||||
MOV ip,a1 /* move ptr to ip */
|
|
||||||
MOV a1,#0 /* set result to 0 */
|
|
||||||
ANDS a3,a4,#3
|
|
||||||
@@ -1390,10 +1390,10 @@ LABEL(dec_loop_down_l1)
|
|
||||||
SUBS a3,a3,#1 /* DEC the two words */
|
|
||||||
SUBCCS a2,a2,#1 /* stopping when first word non-zero */
|
|
||||||
STMDB ip!,{a2,a3} /* store 2 results */
|
|
||||||
- MOVCSS pc,lr /* return 0 if any result non-zero */
|
|
||||||
+ BXCS lr /* return 0 if any result non-zero */
|
|
||||||
SUBS a4,a4,#2 /* decrement counter by 2 */
|
|
||||||
MVNEQ a1,#0 /* if finished loop then */
|
|
||||||
- MOVEQS pc,lr /* return -1 */
|
|
||||||
+ BXEQ lr /* return -1 */
|
|
||||||
LABEL(dec_loop_down_l3) /* now a multiple of 4 words */
|
|
||||||
STMFD sp!,{v1,lr} /* save work regs */
|
|
||||||
LABEL(dec_loop_down_l2)
|
|
||||||
@@ -1403,11 +1403,11 @@ LABEL(dec_loop_down_l2)
|
|
||||||
SUBCCS a3,a3,#1
|
|
||||||
SUBCCS a2,a2,#1
|
|
||||||
STMDB ip!,{a2,a3,v1,lr} /* store 4 results */
|
|
||||||
- LDMCSFD sp!,{v1,pc}^ /* return 0 if any carry */
|
|
||||||
+ LDMCSFD sp!,{v1,pc} /* return 0 if any carry */
|
|
||||||
SUBS a4,a4,#4 /* decrement counter by 4 */
|
|
||||||
BGT dec_loop_down_l2 /* if count still positive then loop */
|
|
||||||
MVN a1,#0
|
|
||||||
- LDMFD sp!,{v1,pc}^ /* restore work regs and return -1 */
|
|
||||||
+ LDMFD sp!,{v1,pc} /* restore work regs and return -1 */
|
|
||||||
|
|
||||||
/* extern void neg_loop_down (uintD* ptr, uintC count);
|
|
||||||
entry
|
|
||||||
@@ -1421,7 +1421,7 @@ LABEL(dec_loop_down_l2)
|
|
||||||
GLABEL(neg_loop_down)
|
|
||||||
CMPS a2,#0 /* count = 0 ? */
|
|
||||||
MOVEQ a1,#0 /* yup, so return 0 */
|
|
||||||
- MOVEQS pc,lr
|
|
||||||
+ BXEQ lr
|
|
||||||
LABEL(neg_loop_down_l1) /* skip all the zero words first */
|
|
||||||
LDR a3,[a1,#-4]! /* compare words against zero */
|
|
||||||
CMPS a3,#0 /* downwards in memory */
|
|
||||||
@@ -1429,13 +1429,13 @@ LABEL(neg_loop_down_l1) /* skip
|
|
||||||
SUBS a2,a2,#1 /* reduce count of words */
|
|
||||||
BNE neg_loop_down_l1 /* more ?, so loop */
|
|
||||||
MOV a1,#0 /* return 0 */
|
|
||||||
- MOVS pc,lr
|
|
||||||
+ BX lr
|
|
||||||
LABEL(neg_loop_down_l2)
|
|
||||||
RSB a3,a3,#0 /* first non-zero word = -word */
|
|
||||||
STR a3,[a1]
|
|
||||||
SUBS a2,a2,#1
|
|
||||||
MVNEQ a1,#0 /* done ? -> return -1 */
|
|
||||||
- MOVEQS pc,lr
|
|
||||||
+ BXEQ lr
|
|
||||||
/* now NOT rest of the words */
|
|
||||||
ANDS a3,a2,#3 /* multiple of 4 words ? */
|
|
||||||
BEQ neg_loop_down_l3 /* yup, so branch */
|
|
||||||
@@ -1453,7 +1453,7 @@ LABEL(neg_loop_down_l2)
|
|
||||||
LABEL(neg_loop_down_l3)
|
|
||||||
BICS a4,a2,#3 /* set counter to multiple of 4 */
|
|
||||||
MVNEQ a1,#0 /* set result to -1 */
|
|
||||||
- MOVEQS pc,lr /* if zero then we're done */
|
|
||||||
+ BXEQ lr /* if zero then we're done */
|
|
||||||
STMFD sp!,{lr} /* save work regs */
|
|
||||||
LABEL(neg_loop_down_l4)
|
|
||||||
LDMDB a1,{a2,a3,ip,lr} /* load 4 words in one go,NO writeback */
|
|
||||||
@@ -1465,7 +1465,7 @@ LABEL(neg_loop_down_l4)
|
|
||||||
SUBS a4,a4,#4 /* decrement counter by 4 */
|
|
||||||
BGT neg_loop_down_l4 /* if count still positive then loop */
|
|
||||||
MVN a1,#0 /* set result to -1 */
|
|
||||||
- LDMFD sp!,{pc}^ /* restore work regs and return -1 */
|
|
||||||
+ LDMFD sp!,{pc} /* restore work regs and return -1 */
|
|
||||||
|
|
||||||
/* extern uintD shift1left_loop_down (uintD* ptr, uintC count);
|
|
||||||
entry
|
|
||||||
@@ -1485,7 +1485,7 @@ GLABEL(shift1left_loop_down)
|
|
||||||
LABEL(shift1left_loop_down_l1)
|
|
||||||
BICS a4,a2,#1 /* set counter to multiple of 2 */
|
|
||||||
ADCEQ a1,a4,a4 /* if zero set result to C (a4 is 0) */
|
|
||||||
- MOVEQS pc,lr /* and return */
|
|
||||||
+ BXEQ lr /* and return */
|
|
||||||
ANDS a3,a4,#3 /* multiple of 4 words ? */
|
|
||||||
BEQ shift1left_loop_down_l3 /* yup, so branch */
|
|
||||||
LDMDB a1,{a2,a3} /* load 2 words in one go */
|
|
||||||
@@ -1494,7 +1494,7 @@ LABEL(shift1left_loop_down_l1)
|
|
||||||
STMDB a1!,{a2,a3} /* store 2 results */
|
|
||||||
BICS a4,a4,#2 /* decrement counter by 2 */
|
|
||||||
ADCEQ a1,a4,a4 /* set result to Carry (a4 is 0) */
|
|
||||||
- MOVEQS pc,lr /* and return */
|
|
||||||
+ BXEQ lr /* and return */
|
|
||||||
LABEL(shift1left_loop_down_l3) /* now a multiple of 4 words */
|
|
||||||
STMFD sp!,{lr} /* save work regs */
|
|
||||||
LABEL(shift1left_loop_down_l2)
|
|
||||||
@@ -1508,7 +1508,7 @@ LABEL(shift1left_loop_down_l2)
|
|
||||||
TEQ a4,#0 /* are we done ? */
|
|
||||||
BNE shift1left_loop_down_l2 /* if count non-zero then loop */
|
|
||||||
ADC a1,a4,a4 /* set result to Carry (a4 is 0) */
|
|
||||||
- LDMFD sp!,{pc}^ /* restore work regs and return 1 */
|
|
||||||
+ LDMFD sp!,{pc} /* restore work regs and return 1 */
|
|
||||||
|
|
||||||
/* extern uintD shiftleft_loop_down (uintD* ptr, uintC count, uintC i, uintD carry);
|
|
||||||
entry
|
|
||||||
@@ -1542,7 +1542,7 @@ GLABEL(shiftleft_loop_down)
|
|
||||||
LABEL(shiftleft_loop_down_l1)
|
|
||||||
BICS ip,a2,#3 /* set counter to multiple of 4 */
|
|
||||||
MOVEQ a1,a4 /* if zero then we're done */
|
|
||||||
- LDMEQFD sp!,{v6,pc}^ /* so return last shift out */
|
|
||||||
+ LDMEQFD sp!,{v6,pc} /* so return last shift out */
|
|
||||||
STMFD sp!,{v1-v3} /* save work regs */
|
|
||||||
LABEL(shiftleft_loop_down_l2)
|
|
||||||
LDMDB a1,{a2,v1,v2,v3} /* load 4 words in one go */
|
|
||||||
@@ -1558,7 +1558,7 @@ LABEL(shiftleft_loop_down_l2)
|
|
||||||
SUBS ip,ip,#4 /* decrement counter by 4 */
|
|
||||||
BGT shiftleft_loop_down_l2 /* if count still positive then loop */
|
|
||||||
MOV a1,a4 /* result = last shift out */
|
|
||||||
- LDMFD sp!,{v1-v3,v6,pc}^ /* restore work regs and return */
|
|
||||||
+ LDMFD sp!,{v1-v3,v6,pc} /* restore work regs and return */
|
|
||||||
|
|
||||||
/* extern uintD shiftleftcopy_loop_down (uintD* sourceptr, uintD* destptr, uintC count, uintC i);
|
|
||||||
entry
|
|
||||||
@@ -1593,7 +1593,7 @@ GLABEL(shiftleftcopy_loop_down)
|
|
||||||
LABEL(shiftleftcopy_loop_down_l1)
|
|
||||||
BICS ip,a3,#3 /* set counter to multiple of 4 */
|
|
||||||
MOVEQ a1,v5 /* if zero then we're done */
|
|
||||||
- LDMEQFD sp!,{v5,v6,pc}^ /* so return last shift out */
|
|
||||||
+ LDMEQFD sp!,{v5,v6,pc} /* so return last shift out */
|
|
||||||
STMFD sp!,{v1-v3} /* save work regs */
|
|
||||||
LABEL(shiftleftcopy_loop_down_l2)
|
|
||||||
LDMDB a1!,{a3,v1,v2,v3} /* load 4 words in one go */
|
|
||||||
@@ -1609,7 +1609,7 @@ LABEL(shiftleftcopy_loop_down_l2)
|
|
||||||
SUBS ip,ip,#4 /* decrement counter by 4 */
|
|
||||||
BGT shiftleftcopy_loop_down_l2 /* if count still positive then loop */
|
|
||||||
MOV a1,v5 /* result = last shift out */
|
|
||||||
- LDMFD sp!,{v1-v3,v5,v6,pc}^ /* restore work regs and return */
|
|
||||||
+ LDMFD sp!,{v1-v3,v5,v6,pc} /* restore work regs and return */
|
|
||||||
|
|
||||||
/* extern uintD shift1right_loop_up (uintD* ptr, uintC count, uintD carry);
|
|
||||||
entry
|
|
||||||
@@ -1630,7 +1630,7 @@ GLABEL(shift1right_loop_up)
|
|
||||||
LABEL(shift1right_loop_up_l1)
|
|
||||||
BICS a4,a2,#1 /* set counter to multiple of 2 */
|
|
||||||
MOVEQ a1,a4,RRX /* if zero set result to C (a4 is 0) */
|
|
||||||
- MOVEQS pc,lr /* and return */
|
|
||||||
+ BXEQ lr /* and return */
|
|
||||||
ANDS a3,a4,#3 /* multiple of 4 words ? */
|
|
||||||
BEQ shift1right_loop_up_l3 /* yup, so branch */
|
|
||||||
LDMIA a1,{a2,a3} /* load 2 words in one go */
|
|
||||||
@@ -1639,7 +1639,7 @@ LABEL(shift1right_loop_up_l1)
|
|
||||||
STMIA a1!,{a2,a3} /* store 2 results */
|
|
||||||
BICS a4,a4,#2 /* decrement counter by 2 */
|
|
||||||
ADCEQ a1,a4,a4 /* set result to Carry (a4 is 0) */
|
|
||||||
- MOVEQS pc,lr /* and return */
|
|
||||||
+ BXEQ lr /* and return */
|
|
||||||
LABEL(shift1right_loop_up_l3) /* now a multiple of 4 words */
|
|
||||||
STMFD sp!,{lr} /* save work regs */
|
|
||||||
LABEL(shift1right_loop_up_l2)
|
|
||||||
@@ -1653,7 +1653,7 @@ LABEL(shift1right_loop_up_l2)
|
|
||||||
TEQ a4,#0 /* are we done ? */
|
|
||||||
BNE shift1right_loop_up_l2 /* if count non-zero then loop */
|
|
||||||
MOV a1,a4,RRX /* set result to Carry (a4 is 0) */
|
|
||||||
- LDMFD sp!,{pc}^ /* restore work regs and return 1 */
|
|
||||||
+ LDMFD sp!,{pc} /* restore work regs and return 1 */
|
|
||||||
|
|
||||||
/* extern uintD shiftright_loop_up (uintD* ptr, uintC count, uintC i);
|
|
||||||
entry
|
|
||||||
@@ -1688,7 +1688,7 @@ LABEL(shiftright_loop_up_l0)
|
|
||||||
LABEL(shiftright_loop_up_l1)
|
|
||||||
BICS ip,a2,#3 /* set counter to multiple of 4 */
|
|
||||||
MOVEQ a1,a4 /* if zero then we're done */
|
|
||||||
- LDMEQFD sp!,{v6,pc}^ /* so return last shift out */
|
|
||||||
+ LDMEQFD sp!,{v6,pc} /* so return last shift out */
|
|
||||||
STMFD sp!,{v1-v3} /* save work regs */
|
|
||||||
LABEL(shiftright_loop_up_l2)
|
|
||||||
LDMIA a1,{v1,v2,v3,lr} /* load 4 words in one go */
|
|
||||||
@@ -1704,7 +1704,7 @@ LABEL(shiftright_loop_up_l2)
|
|
||||||
SUBS ip,ip,#4 /* decrement counter by 4 */
|
|
||||||
BGT shiftright_loop_up_l2 /* if count still positive then loop */
|
|
||||||
MOV a1,a4 /* result = last shift out */
|
|
||||||
- LDMFD sp!,{v1-v3,v6,pc}^ /* restore work regs and return */
|
|
||||||
+ LDMFD sp!,{v1-v3,v6,pc} /* restore work regs and return */
|
|
||||||
|
|
||||||
/* extern uintD shiftrightsigned_loop_up (uintD* ptr, uintC count, uintC i);
|
|
||||||
entry
|
|
||||||
@@ -1759,7 +1759,7 @@ LABEL(shiftrightcopy_loop_up_l0)
|
|
||||||
LABEL(shiftrightcopy_loop_up_l1)
|
|
||||||
BICS ip,a3,#3 /* set counter to multiple of 4 */
|
|
||||||
MOVEQ a1,v5 /* if zero then we're done */
|
|
||||||
- LDMEQFD sp!,{v5,v6,pc}^ /* so return last shift out */
|
|
||||||
+ LDMEQFD sp!,{v5,v6,pc} /* so return last shift out */
|
|
||||||
STMFD sp!,{v1-v3} /* save work regs */
|
|
||||||
LABEL(shiftrightcopy_loop_up_l2)
|
|
||||||
LDMIA a1!,{v1,v2,v3,lr} /* load 4 words in one go */
|
|
||||||
@@ -1775,7 +1775,7 @@ LABEL(shiftrightcopy_loop_up_l2)
|
|
||||||
SUBS ip,ip,#4 /* decrement counter by 4 */
|
|
||||||
BGT shiftrightcopy_loop_up_l2 /* if count still positive then loop */
|
|
||||||
MOV a1,v5 /* result = last shift out */
|
|
||||||
- LDMFD sp!,{v1-v3,v5,v6,pc}^ /* restore work regs and return */
|
|
||||||
+ LDMFD sp!,{v1-v3,v5,v6,pc} /* restore work regs and return */
|
|
||||||
|
|
||||||
#ifndef HAVE_umull
|
|
||||||
/* mulu32_64_vregs
|
|
||||||
@@ -1800,7 +1800,7 @@ LABEL(mulu32_64_vregs)
|
|
||||||
ADDCS v2,v2,#0x10000 /* carry from above add */
|
|
||||||
ADDS v1,v4,ip,LSL #16 /* x is now bottom 32 bits of result */
|
|
||||||
ADC ip,v2,ip,LSR #16 /* hi is top 32 bits */
|
|
||||||
- MOVS pc,lr
|
|
||||||
+ BX lr
|
|
||||||
#endif /* HAVE_umull */
|
|
||||||
|
|
||||||
/* extern uintD mulusmall_loop_down (uintD digit, uintD* ptr, uintC len, uintD newdigit);
|
|
||||||
@@ -1816,7 +1816,7 @@ LABEL(mulu32_64_vregs)
|
|
||||||
GLABEL(mulusmall_loop_down)
|
|
||||||
CMP a3,#0
|
|
||||||
MOVEQ a1,a4
|
|
||||||
- MOVEQS pc,lr
|
|
||||||
+ BXEQ lr
|
|
||||||
#ifdef HAVE_umull
|
|
||||||
STMFD sp!,{v1,lr}
|
|
||||||
LABEL(mulusmall_loop_down_l1)
|
|
||||||
@@ -1828,7 +1828,7 @@ LABEL(mulusmall_loop_down_l1)
|
|
||||||
SUBS a3,a3,#1 /* len-- */
|
|
||||||
BNE mulusmall_loop_down_l1 /* until len==0 */
|
|
||||||
MOV a1,a4 /* return carry */
|
|
||||||
- LDMFD sp!,{v1,pc}^
|
|
||||||
+ LDMFD sp!,{v1,pc}
|
|
||||||
#else
|
|
||||||
STMFD sp!,{v1-v2,lr}
|
|
||||||
LABEL(mulusmall_loop_down_l1)
|
|
||||||
@@ -1850,7 +1850,7 @@ LABEL(mulusmall_loop_down_l1)
|
|
||||||
SUBS a3,a3,#1 /* len-- */
|
|
||||||
BNE mulusmall_loop_down_l1 /* until len==0 */
|
|
||||||
MOV a1,a4 /* return carry */
|
|
||||||
- LDMFD sp!,{v1-v2,pc}^
|
|
||||||
+ LDMFD sp!,{v1-v2,pc}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* extern void mulu_loop_down (uintD digit, uintD* sourceptr, uintD* destptr, uintC len);
|
|
||||||
@@ -1875,7 +1875,7 @@ LABEL(mulu_loop_down_l1)
|
|
||||||
SUBS a4,a4,#1 /* len-- */
|
|
||||||
BNE mulu_loop_down_l1 /* until len==0 */
|
|
||||||
STR v5,[a3,#-4]! /* *--destptr = carry */
|
|
||||||
- LDMFD sp!,{v1,v5,pc}^
|
|
||||||
+ LDMFD sp!,{v1,v5,pc}
|
|
||||||
#else
|
|
||||||
STMFD sp!,{v1-v5,lr}
|
|
||||||
MOV v5,#0
|
|
||||||
@@ -1888,7 +1888,7 @@ LABEL(mulu_loop_down_l1)
|
|
||||||
SUBS a4,a4,#1 /* len-- */
|
|
||||||
BNE mulu_loop_down_l1 /* until len==0 */
|
|
||||||
STR v5,[a3,#-4]! /* *--destptr = carry */
|
|
||||||
- LDMFD sp!,{v1-v5,pc}^
|
|
||||||
+ LDMFD sp!,{v1-v5,pc}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* extern void muluadd_loop_down (uintD digit, uintD* sourceptr, uintD* destptr, uintC len);
|
|
||||||
@@ -1916,7 +1916,7 @@ LABEL(muluadd_loop_down_l1)
|
|
||||||
SUBS a4,a4,#1 /* len-- */
|
|
||||||
BNE muluadd_loop_down_l1 /* until len==0 */
|
|
||||||
MOV a1,v5 /* return carry */
|
|
||||||
- LDMFD sp!,{v1,v5,pc}^
|
|
||||||
+ LDMFD sp!,{v1,v5,pc}
|
|
||||||
#else
|
|
||||||
STMFD sp!,{v1-v5,lr}
|
|
||||||
MOV v5,#0
|
|
||||||
@@ -1932,7 +1932,7 @@ LABEL(muluadd_loop_down_l1)
|
|
||||||
SUBS a4,a4,#1 /* len-- */
|
|
||||||
BNE muluadd_loop_down_l1 /* until len==0 */
|
|
||||||
MOV a1,v5 /* return carry */
|
|
||||||
- LDMFD sp!,{v1-v5,pc}^
|
|
||||||
+ LDMFD sp!,{v1-v5,pc}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* extern void mulusub_loop_down (uintD digit, uintD* sourceptr, uintD* destptr, uintC len);
|
|
||||||
@@ -1960,7 +1960,7 @@ LABEL(mulusub_loop_down_l1)
|
|
||||||
SUBS a4,a4,#1 /* len-- */
|
|
||||||
BNE mulusub_loop_down_l1 /* until len==0 */
|
|
||||||
MOV a1,v5 /* return carry */
|
|
||||||
- LDMFD sp!,{v1,v5,pc}^
|
|
||||||
+ LDMFD sp!,{v1,v5,pc}
|
|
||||||
#else
|
|
||||||
STMFD sp!,{v1-v5,lr}
|
|
||||||
MOV v5,#0
|
|
||||||
@@ -1976,7 +1976,7 @@ LABEL(mulusub_loop_down_l1)
|
|
||||||
SUBS a4,a4,#1 /* len-- */
|
|
||||||
BNE mulusub_loop_down_l1 /* until len==0 */
|
|
||||||
MOV a1,v5 /* return carry */
|
|
||||||
- LDMFD sp!,{v1-v5,pc}^
|
|
||||||
+ LDMFD sp!,{v1-v5,pc}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined __linux__ || defined __FreeBSD__ || defined __FreeBSD_kernel__ || defined __DragonFly__
|
|
@ -4,8 +4,8 @@
|
|||||||
2 files changed, 4 insertions(+), 2 deletions(-)
|
2 files changed, 4 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
--- src/clisp-link.in
|
--- src/clisp-link.in
|
||||||
+++ src/clisp-link.in 2017-07-27 12:34:06.144647126 +0000
|
+++ src/clisp-link.in 2018-02-12 08:31:51.215851048 +0000
|
||||||
@@ -578,7 +578,7 @@ case "$1" in
|
@@ -579,7 +579,7 @@ case "$1" in
|
||||||
# when running "CLISP=./clisp ./clisp-link install <modname>"
|
# when running "CLISP=./clisp ./clisp-link install <modname>"
|
||||||
# in the build directory, avoid "cp: `...' and `...' are the same file"
|
# in the build directory, avoid "cp: `...' and `...' are the same file"
|
||||||
if [ "${absolute_moduledir}" != "${absdestdir}/$moduledir" ]; then
|
if [ "${absolute_moduledir}" != "${absdestdir}/$moduledir" ]; then
|
||||||
@ -15,8 +15,8 @@
|
|||||||
for f in ${DYNDIR_FILES}; do
|
for f in ${DYNDIR_FILES}; do
|
||||||
cp ${f} ${absdestdir}/${DYNMOD}/
|
cp ${f} ${absdestdir}/${DYNMOD}/
|
||||||
--- src/lispbibl.d
|
--- src/lispbibl.d
|
||||||
+++ src/lispbibl.d 2017-07-27 12:34:06.152646979 +0000
|
+++ src/lispbibl.d 2018-02-12 08:31:51.219850972 +0000
|
||||||
@@ -1571,6 +1571,8 @@ typedef SLONG sint32; /* signed 32 bi
|
@@ -1621,6 +1621,8 @@ typedef SLONG sint32; /* signed 32 bi
|
||||||
/* Emulate 64-Bit-numbers using two 32-Bit-numbers. */
|
/* Emulate 64-Bit-numbers using two 32-Bit-numbers. */
|
||||||
typedef struct { sintL hi; uintL lo; } sintL2; /* signed 64 Bit integer */
|
typedef struct { sintL hi; uintL lo; } sintL2; /* signed 64 Bit integer */
|
||||||
typedef struct { uintL hi; uintL lo; } uintL2; /* unsigned 64 Bit integer */
|
typedef struct { uintL hi; uintL lo; } uintL2; /* unsigned 64 Bit integer */
|
||||||
@ -25,7 +25,7 @@
|
|||||||
#endif
|
#endif
|
||||||
/* Use 'uintX' and 'sintX' for Integers with approximately given width
|
/* Use 'uintX' and 'sintX' for Integers with approximately given width
|
||||||
and a minumum of storage space. */
|
and a minumum of storage space. */
|
||||||
@@ -11973,7 +11975,7 @@ re-enters the corresponding top-level lo
|
@@ -14278,7 +14280,7 @@ re-enters the corresponding top-level lo
|
||||||
#define pushSTACK(obj) (STACK_(-1) = (obj), STACK skipSTACKop -1)
|
#define pushSTACK(obj) (STACK_(-1) = (obj), STACK skipSTACKop -1)
|
||||||
/* Almost equivalent with *--STACK = obj resp. *STACK++ = obj , but
|
/* Almost equivalent with *--STACK = obj resp. *STACK++ = obj , but
|
||||||
Careful: first enter the object into STACK_(-1), THEN modify the STACK! */
|
Careful: first enter the object into STACK_(-1), THEN modify the STACK! */
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
---
|
||||||
|
modules/bindings/glibc/linux.lisp | 2 ++
|
||||||
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/modules/bindings/glibc/linux.lisp b/modules/bindings/glibc/linux.lisp
|
||||||
--- a/modules/bindings/glibc/linux.lisp
|
--- a/modules/bindings/glibc/linux.lisp
|
||||||
+++ b/modules/bindings/glibc/linux.lisp
|
+++ b/modules/bindings/glibc/linux.lisp
|
||||||
@@ -294,6 +294,8 @@
|
@@ -294,6 +294,8 @@
|
||||||
@ -9,11 +14,3 @@
|
|||||||
|
|
||||||
; -------------------------- <bits/errno.h> -----------------------------------
|
; -------------------------- <bits/errno.h> -----------------------------------
|
||||||
|
|
||||||
@@ -649,7 +651,6 @@
|
|
||||||
(def-call-out calloc (:arguments (nmemb size_t) (size size_t))
|
|
||||||
(:return-type c-pointer))
|
|
||||||
(def-call-out free (:arguments (ptr c-pointer)) (:return-type nil))
|
|
||||||
-(def-call-out cfree (:arguments (ptr c-pointer)) (:return-type nil))
|
|
||||||
(def-call-out valloc (:arguments (size size_t)) (:return-type c-pointer))
|
|
||||||
|
|
||||||
(def-call-out abort (:arguments) (:return-type nil))
|
|
||||||
|
119
clisp.changes
119
clisp.changes
@ -1,3 +1,122 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Feb 12 09:02:18 UTC 2018 - werner@suse.de
|
||||||
|
|
||||||
|
- Update 2.49.90 (pre-release 2.50)
|
||||||
|
* Module WILDCARD has been removed.
|
||||||
|
Functions WILDCARD:MATCH and WILDCARD:WILDCARD-MATCHER are deprecated
|
||||||
|
in favor of POSIX:FNMATCH and POSIX:FNMATCH-MATCHER.
|
||||||
|
See <http://clisp.org/impnotes/syscalls.html#wildcard> for details.
|
||||||
|
* Module REGEXP:
|
||||||
|
+ Function REGEXP:REGEXP-EXEC no longer accepts :BOOLEAN argument; use
|
||||||
|
:RETURN-TYPE 'BOOLEAN instead.
|
||||||
|
See <http://clisp.org/impnotes/regexp.html#re-regexp-exec> for details.
|
||||||
|
* Module RAWSOCK:
|
||||||
|
+ Function RAWSOCK:CONVERT-ADDRESS now returns byte vectors instead of
|
||||||
|
integers.
|
||||||
|
See <http://clisp.org/impnotes/rawsock.html#rawsock-convert-address>
|
||||||
|
for details.
|
||||||
|
* Mixing &OPTIONAL and &KEY in the same lambda list is a bad design
|
||||||
|
and now triggers a STYLE-WARNING during compilation.
|
||||||
|
See <http://clisp.org/impnotes/compilation.html#key-optional> for details.
|
||||||
|
* Redefinition warnings are now of type STYLE-WARNING.
|
||||||
|
Some CLOS warnings are now of type STYLE-WARNING.
|
||||||
|
See <http://clisp.org/impnotes/evaluation.html#suppress-check-redef>
|
||||||
|
and <http://clisp.org/impnotes/mop-clisp.html#mop-clisp-warn>
|
||||||
|
for details.
|
||||||
|
* FFI now converts REALs to FLOATs automatically as necessary.
|
||||||
|
* New user variable CUSTOM:*MODULE-PROVIDER-FUNCTIONS* allows user to
|
||||||
|
influence behavior of REQUIRE.
|
||||||
|
See <http://clisp.org/impnotes/require.html#module-providers> for details.
|
||||||
|
* The readline-based completion facility is now more customizable.
|
||||||
|
See <http://clisp.org/impnotes/terminal.html#readline-extend> for details.
|
||||||
|
* New declaration DYNAMICALLY-MODIFIABLE disables GF-ALREADY-CALLED-WARNING.
|
||||||
|
See <http://clisp.org/impnotes/mop-clisp.html#mop-clisp-gf-dynamically-modifiable>
|
||||||
|
for details.
|
||||||
|
* Function EXT:STREAM-HANDLES returns the OS file handles for the stream.
|
||||||
|
It has been present since 2.36 in package SOCKET but was not documented.
|
||||||
|
See <http://clisp.org/impnotes/socket.html#so-handles> for details.
|
||||||
|
* To help distributors distribute memory images of clisp applications in
|
||||||
|
package repositories, clisp has three new command-line options:
|
||||||
|
$ clisp [-K linking-set] -memfile-hash
|
||||||
|
Prints the hash code of the mem file binary interface.
|
||||||
|
$ clisp [-K linking-set] -memfile-hash-of mem-file
|
||||||
|
Prints the hash code of the mem file binary interface that was used to
|
||||||
|
create this mem-file.
|
||||||
|
$ clisp [-K linking-set] -memfile-compatible mem-file
|
||||||
|
Returns 0 or 1, depending whether this mem-file is compatible with the
|
||||||
|
linking-set or not.
|
||||||
|
See <http://clisp.org/impnotes/image.html#images-in-distros> for how to use
|
||||||
|
these options.
|
||||||
|
* Module SYSCALLS:
|
||||||
|
+ New function POSIX:FILE-TREE-WALK calls nftw().
|
||||||
|
See <http://clisp.org/impnotes/syscalls.html#file-tree-walk> for details.
|
||||||
|
+ New function POSIX:GETDATE calls getdate().
|
||||||
|
See <http://clisp.org/impnotes/syscalls.html#getdate> for details.
|
||||||
|
+ New macro POSIX:WITH-SUBPROCESSES temporarily enables SIGCLD so that
|
||||||
|
functions POSIX:WAIT, LINUX:wait and LINUX:waitpid work (bug#592).
|
||||||
|
See <http://clisp.org/impnotes/syscalls.html#with-subprocesses> for details.
|
||||||
|
+ Function POSIX:USAGE now accept an optional argument and returns a
|
||||||
|
single value.
|
||||||
|
See <http://clisp.org/impnotes/syscalls.html#usage> for details.
|
||||||
|
* Module berkeley-db now supports Berkeley-DB 5.1.
|
||||||
|
(Older versions are, of course, still supported).
|
||||||
|
See <http://clisp.org/impnotes/berkeley-db.html> for details.
|
||||||
|
* Module pari now supports PARI 2.9.3 and most of the interface
|
||||||
|
functions are generated automatically.
|
||||||
|
See <http://clisp.org/impnotes/pari.html> for details.
|
||||||
|
* Fix documentation strings handling for structs (bug#561).
|
||||||
|
* Fix SCREEN behavior when the window is resized.
|
||||||
|
* Pass the top-level configure arguments --build= & --host=
|
||||||
|
to the module configures (bug#566).
|
||||||
|
* Fix PROBE-PATHNAME behavior on win32 and on open file streams (bug#570).
|
||||||
|
* Fix handling of huge byte arrays on 64-bit platforms (bug#571).
|
||||||
|
* Fix LOADing corrupt FAS files (bug#578).
|
||||||
|
* Fix interaction of *DEFAULT-PATHNAME-DEFAULTS* with REQUIRE (bug#579).
|
||||||
|
* Correctly bind *LOAD-PATHNAME* in LOAD (bug#584).
|
||||||
|
* Fix OS:FILE-INFO on files with corrupt times (bug#581).
|
||||||
|
* Make wrong keyword argument a STYLE-WARNING in the presence of
|
||||||
|
:ALLOW-OTHER-KEYS T (bug#588).
|
||||||
|
* Fix LOOP mixing WITH & Hash Table FOR (bug#585);
|
||||||
|
avoid destructuring null patterns (bug#414);
|
||||||
|
detect incomplete FOR clauses (bug#572);
|
||||||
|
check whether DO clauses are compound forms (bug#711);
|
||||||
|
warn on REPEAT before FOR (bug#604).
|
||||||
|
* Fix SOCKET-CONNECT with non-0 timeout (bug#587).
|
||||||
|
* Reduce consing in HANDLER-BIND et al (bug#582).
|
||||||
|
* Implement :NO-HANG and :INTERACTIVE in WRITE-BYTE-SEQUENCE for all
|
||||||
|
sequences, not just byte vectors (bug#586).
|
||||||
|
* Fix protocol argument handling in POSIX:SERVICE (bug#596).
|
||||||
|
* Fix (SETF (VALUES (VALUES) ...) ...) (bug#597).
|
||||||
|
* Fix handling properties with "format=32" in NEW-CLX on 64-bit
|
||||||
|
machines (bug#598); handle more host families in XLIB:ACCESS-HOSTS.
|
||||||
|
* Do not ignore user-supplied print methods for user-defined
|
||||||
|
SIMPLE-CONDITIONs (bug#605).
|
||||||
|
* Better argument checking of FUNCALL on LAMBDA (bug#603).
|
||||||
|
* All truenames now have non-NIL version component (bug#606).
|
||||||
|
* Fix OS:FILE-STAT on very large files (bug#626).
|
||||||
|
* Fix error that occurred when constructing the dispatch code of generic
|
||||||
|
functions with a method that specializes on SEQUENCE (bug#628).
|
||||||
|
* Improve dotted list detection in APPLY (bug#636).
|
||||||
|
* Signal TYPE-ERROR in LOGICAL-PATHNAME-TRANSLATIONS on invalid
|
||||||
|
logical host as per ANSI (bug#638).
|
||||||
|
* Fix run-time error reporting in compiled FORMAT calls (bug#631).
|
||||||
|
* Fix symlink to directory handling (bug#625).
|
||||||
|
* PCRE-EXEC returns character positions instead of byte positions.
|
||||||
|
* Fix COMPILE-FILE-PATHNAME logical pathname handling (bug#677).
|
||||||
|
* Streams returned by MAKE-STREAM may be passed to TRUENAME (bug#679).
|
||||||
|
* Do not signal the CLOS:GF-ALREADY-CALLED-WARNING on Gray streams.
|
||||||
|
* Improve consistency in declaration handling (bug#702).
|
||||||
|
* Package locks are checked by DECLARATION and DEFTYPE (bug#701).
|
||||||
|
* Allow spaces in file names of clisp scripts (bug#699).
|
||||||
|
- Remove obsolete patches clisp-2.39-clx.dif and clisp-arm.patch
|
||||||
|
- Modify patches
|
||||||
|
* clisp-2.39-ia64-wooh.dif
|
||||||
|
* clisp-2.49-configure.dif
|
||||||
|
* clisp-2.49-personality.patch
|
||||||
|
* clisp-2.49-rpath.dif
|
||||||
|
* clisp-link.dif
|
||||||
|
* clisp-linux.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Dec 7 11:04:09 UTC 2017 - dimstar@opensuse.org
|
Thu Dec 7 11:04:09 UTC 2017 - dimstar@opensuse.org
|
||||||
|
|
||||||
|
47
clisp.spec
47
clisp.spec
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package clisp
|
# spec file for package clisp
|
||||||
#
|
#
|
||||||
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
|
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -16,11 +16,8 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# minimum suse version where the full featured package builds
|
|
||||||
%define uuid 9c43d428
|
|
||||||
|
|
||||||
Name: clisp
|
Name: clisp
|
||||||
Version: 2.49.60+
|
Version: 2.49.90
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: A Common Lisp Interpreter
|
Summary: A Common Lisp Interpreter
|
||||||
License: GPL-2.0+
|
License: GPL-2.0+
|
||||||
@ -28,15 +25,13 @@ Group: Development/Languages/Other
|
|||||||
Url: http://clisp.cons.org
|
Url: http://clisp.cons.org
|
||||||
|
|
||||||
#Source: http://downloads.sf.net/clisp/%name-%version.tar.bz2
|
#Source: http://downloads.sf.net/clisp/%name-%version.tar.bz2
|
||||||
Source: %name-%uuid.tar.bz2
|
Source: %name-%version.tar.bz2
|
||||||
Source3: clisp-rpmlintrc
|
Source3: clisp-rpmlintrc
|
||||||
Source4: README.SUSE
|
Source4: README.SUSE
|
||||||
# PATCH-EXTEND-OPENSUSE Set the process execution domain
|
# PATCH-EXTEND-OPENSUSE Set the process execution domain
|
||||||
Patch1: clisp-2.49-personality.patch
|
Patch1: clisp-2.49-personality.patch
|
||||||
# PATCH-FIX-OPENSUSE Fix crash on Ia64
|
# PATCH-FIX-OPENSUSE Fix crash on Ia64
|
||||||
Patch2: clisp-2.39-ia64-wooh.dif
|
Patch2: clisp-2.39-ia64-wooh.dif
|
||||||
# PATCH-EXTEND-OPENSUSE Help (new) CLX to work out of the box
|
|
||||||
Patch3: clisp-2.39-clx.dif
|
|
||||||
# PATCH-EXTEND-OPENSUSE Make sure to be able to use MYCLFAGS
|
# PATCH-EXTEND-OPENSUSE Make sure to be able to use MYCLFAGS
|
||||||
Patch4: clisp-2.49-configure.dif
|
Patch4: clisp-2.49-configure.dif
|
||||||
# PATCH-FIX-OPENSUSE Make sure to use initialized token on garbage collection
|
# PATCH-FIX-OPENSUSE Make sure to use initialized token on garbage collection
|
||||||
@ -49,8 +44,6 @@ Patch7: clisp-2.49-postgresql.dif
|
|||||||
Patch8: clisp-2.49-rpath.dif
|
Patch8: clisp-2.49-rpath.dif
|
||||||
# PATCH-FIX-OPENSUSE Correct path for header for System V IPC system calls
|
# PATCH-FIX-OPENSUSE Correct path for header for System V IPC system calls
|
||||||
Patch12: clisp-linux.patch
|
Patch12: clisp-linux.patch
|
||||||
# PATCH-EXTEND-UPSTREAM Make armv7l work
|
|
||||||
Patch15: clisp-arm.patch
|
|
||||||
Patch14: clisp-link.dif
|
Patch14: clisp-link.dif
|
||||||
Patch16: clisp-db6.diff
|
Patch16: clisp-db6.diff
|
||||||
|
|
||||||
@ -121,10 +114,9 @@ with the file README. The subdirectory
|
|||||||
contains two nice applications.
|
contains two nice applications.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -qT -b0 -n clisp-%uuid
|
%setup -qT -b0
|
||||||
%patch1 -p1 -b .sel
|
%patch1 -p1 -b .sel
|
||||||
%patch2 -p1 -b .wooh
|
%patch2 -p1 -b .wooh
|
||||||
%patch3 -p1 -b .clx
|
|
||||||
%patch4 -p1 -b .conf
|
%patch4 -p1 -b .conf
|
||||||
%patch5 -p1 -b .gc
|
%patch5 -p1 -b .gc
|
||||||
%patch6 -p1 -b .demos
|
%patch6 -p1 -b .demos
|
||||||
@ -132,7 +124,6 @@ contains two nice applications.
|
|||||||
%patch8 -p1 -b .rpath
|
%patch8 -p1 -b .rpath
|
||||||
%patch12 -p1 -b .p12
|
%patch12 -p1 -b .p12
|
||||||
%patch14 -p0 -b .p14
|
%patch14 -p0 -b .p14
|
||||||
%patch15 -p0 -b .p15
|
|
||||||
%patch16 -p1 -b .p16
|
%patch16 -p1 -b .p16
|
||||||
|
|
||||||
%build
|
%build
|
||||||
@ -174,9 +165,7 @@ case "$(uname -m)" in
|
|||||||
axp|alpha)
|
axp|alpha)
|
||||||
CC="${CC}" ;;
|
CC="${CC}" ;;
|
||||||
esac
|
esac
|
||||||
noexec='-DKERNELVOID32A_HEAPCODES'
|
safety='-O'
|
||||||
nommap='-DNO_MULTIMAP_SHM -DNO_MULTIMAP_FILE -DNO_SINGLEMAP -DNO_TRIVIALMAP'
|
|
||||||
safety='-DSAFETY=3 -O'
|
|
||||||
MYCFLAGS="$(getconf LFS_CFLAGS)"
|
MYCFLAGS="$(getconf LFS_CFLAGS)"
|
||||||
if grep -q _DEFAULT_SOURCE /usr/include/features.h
|
if grep -q _DEFAULT_SOURCE /usr/include/features.h
|
||||||
then
|
then
|
||||||
@ -184,27 +173,23 @@ then
|
|||||||
else
|
else
|
||||||
MYCFLAGS="${MYCFLAGS} -D_GNU_SOURCE"
|
MYCFLAGS="${MYCFLAGS} -D_GNU_SOURCE"
|
||||||
fi
|
fi
|
||||||
MYCFLAGS="${MYCFLAGS} -Wno-unused -Wno-uninitialized"
|
MYCFLAGS="${MYCFLAGS} -Wno-unused -Wno-uninitialized -Wno-implicit-fallthrough -Wno-volatile-register-var"
|
||||||
port=''
|
port=''
|
||||||
case "$(uname -m)" in
|
case "$(uname -m)" in
|
||||||
i[0-9]86)
|
i[0-9]86)
|
||||||
MYCFLAGS="${MYCFLAGS}" ;;
|
MYCFLAGS="${MYCFLAGS}" ;;
|
||||||
arm*) MYCFLAGS="${MYCFLAGS} ${noexec}" ;;
|
arm*) MYCFLAGS="${MYCFLAGS}" ;;
|
||||||
aarch64)MYCFLAGS="${MYCFLAGS}"
|
aarch64)MYCFLAGS="${MYCFLAGS}" ;;
|
||||||
port=--enable-portability ;;
|
ppc) MYCFLAGS="${MYCFLAGS}" ;;
|
||||||
ppc) MYCFLAGS="${MYCFLAGS} ${noexec}" ;;
|
s390) MYCFLAGS="${MYCFLAGS}" ;;
|
||||||
s390) MYCFLAGS="${MYCFLAGS} ${noexec}" ;;
|
|
||||||
x86_64) MYCFLAGS="${MYCFLAGS}" ;;
|
x86_64) MYCFLAGS="${MYCFLAGS}" ;;
|
||||||
sparc*) MYCFLAGS="${MYCFLAGS} ${nommap} ${safety}" ;;
|
sparc*) MYCFLAGS="${MYCFLAGS} ${safety}" ;;
|
||||||
ppc64) MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD"
|
ppc64) MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD" ;;
|
||||||
port=--enable-portability ;;
|
ppc64le)MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD" ;;
|
||||||
ppc64le)MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD"
|
s390x) MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD" ;;
|
||||||
port=--enable-portability ;;
|
ia64) MYCFLAGS="${MYCFLAGS} ${safety}" ;;
|
||||||
s390x) MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD"
|
|
||||||
port=--enable-portability ;;
|
|
||||||
ia64) MYCFLAGS="${MYCFLAGS} ${nommap} ${safety}" ;;
|
|
||||||
axp|alpha)
|
axp|alpha)
|
||||||
MYCFLAGS="${MYCFLAGS} ${nommap}" ;;
|
MYCFLAGS="${MYCFLAGS}" ;;
|
||||||
esac
|
esac
|
||||||
export CC
|
export CC
|
||||||
export MYCFLAGS
|
export MYCFLAGS
|
||||||
|
Loading…
Reference in New Issue
Block a user