[Openmcl-cvs-notifications] r14184 - in /trunk/source/lisp-kernel: arm-asmutils.s pmcl-kernel.c
gb at clozure.com
gb at clozure.com
Fri Aug 13 06:01:07 CDT 2010
Author: gb
Date: Fri Aug 13 06:01:07 2010
New Revision: 14184
Log:
Change the signature of the ARM flush_cache_lines() - from
startptr,endptr to startptr,size - and implement the syscall
for iOS/Darwin.
Modified:
trunk/source/lisp-kernel/arm-asmutils.s
trunk/source/lisp-kernel/pmcl-kernel.c
Modified: trunk/source/lisp-kernel/arm-asmutils.s
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/lisp-kernel/arm-asmutils.s (original)
+++ trunk/source/lisp-kernel/arm-asmutils.s Fri Aug 13 06:01:07 2010
@@ -21,9 +21,10 @@
=
_beginfile
=
-/* Force data from r0 to r1 into the icache */ =
+/* Force data from r0, size r1 into the icache */ =
_exportfn(C(flush_cache_lines))
__ifdef(`LINUX')
+ __(add r1,r1,r0)
__(mov r2,#0) /* options. Pass as 0 until we know bette=
r */
__(mov r12,r7) /* preserve r7 ; r12 saved by syscall */
__(mov r7,#0x0f0000) /* __ARM_NR_cacheflush */
@@ -31,6 +32,11 @@
__(svc #0)
__(mov r7,r12)
__endif
+ __ifdef(`DARWIN')
+ __(mov r3,#0)
+ __(mov r12,#0x80000000)
+ __(svc #0)
+ __endif =
__(bx lr)
=
_exportfn(C(touch_page))
Modified: trunk/source/lisp-kernel/pmcl-kernel.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/lisp-kernel/pmcl-kernel.c (original)
+++ trunk/source/lisp-kernel/pmcl-kernel.c Fri Aug 13 06:01:07 2010
@@ -1994,8 +1994,8 @@
flush_cache_lines(base, (end-base)/cache_block_size, cache_block_size);
#endif
#ifdef ARM
- extern void flush_cache_lines(void *, void *);
- flush_cache_lines(start,((char *)start)+nbytes);
+ extern void flush_cache_lines(void *, size_t);
+ flush_cache_lines(start,nbytes);
#endif
}
=
More information about the Openmcl-cvs-notifications
mailing list