[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