Module Name: src
Committed By: matt
Date: Wed Dec 26 18:35:47 UTC 2012
Modified Files:
src/sys/arch/arm/vfp: pmap_vfp.S
Log Message:
Add not-yet-enabled code to use vfp_kernel_{acquire,release}
To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/sys/arch/arm/vfp/pmap_vfp.S
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/arm/vfp/pmap_vfp.S
diff -u src/sys/arch/arm/vfp/pmap_vfp.S:1.4 src/sys/arch/arm/vfp/pmap_vfp.S:1.5
--- src/sys/arch/arm/vfp/pmap_vfp.S:1.4 Tue Dec 11 23:59:18 2012
+++ src/sys/arch/arm/vfp/pmap_vfp.S Wed Dec 26 18:35:47 2012
@@ -32,7 +32,7 @@
#include <machine/asm.h>
#include "assym.h"
-RCSID("$NetBSD: pmap_vfp.S,v 1.4 2012/12/11 23:59:18 matt Exp $")
+RCSID("$NetBSD: pmap_vfp.S,v 1.5 2012/12/26 18:35:47 matt Exp $")
/*
* This zeroes a page 64-bytes at a time. 64 was chosen over 32 since
@@ -40,11 +40,16 @@ RCSID("$NetBSD: pmap_vfp.S,v 1.4 2012/12
*/
/* LINTSTUB: void bzero_page_vfp(vaddr_t); */
ENTRY(bzero_page_vfp)
+#if 0
+ str lr, [sp, #-8]!
+ bl _C_LABEL(vfp_kernel_acquire)
+#else
mrc p10, 7, r3, c8, c0, 0
tst r3, #VFP_FPEXC_EN
orreq r2, r3, #VFP_FPEXC_EN
mcreq p10, 7, r2, c8, c0, 0
vpush {d0-d7}
+#endif
#if (CPU_CORTEX == 0)
mov ip, #0
vmov s0, ip
@@ -69,9 +74,14 @@ ENTRY(bzero_page_vfp)
vstmia r0!, {d0-d7}
cmp r0, r2
blt 1b
+#if 0
+ ldr lr, [sp], #8 /* fetch LR */
+ b _C_LABEL(vfp_kernel_release) /* tailcall the vfp release */
+#else
vpop {d0-d7}
mcr p10, 7, r3, c8, c0, 0
RET
+#endif
END(bzero_page_vfp)
/*
@@ -86,12 +96,17 @@ ENTRY(bcopy_page_vfp)
pld [r0, #64]
pld [r0, #96]
#endif
+#if 0
+ str lr, [sp, #-8]!
+ bl _C_LABEL(vfp_kernel_acquire)
+#else
mrc p10, 7, r3, c8, c0, 0
tst r3, #VFP_FPEXC_EN
orreq r2, r3, #VFP_FPEXC_EN
mcreq p10, 7, r2, c8, c0, 0
vpush {d0-d7}
add r2, r0, #PAGE_SIZE-128
+#endif
1:
#ifdef _ARM_ARCH_DWORD_OK
pld [r0, #128] @ preload the next 128
@@ -106,7 +121,12 @@ ENTRY(bcopy_page_vfp)
cmp r0, r2
blt 1b
beq 2b
+#if 0
+ ldr lr, [sp], #8 /* fetch LR */
+ b _C_LABEL(vfp_kernel_release) /* tailcall the vfp release */
+#else
vpop {d0-d7}
mcr p10, 7, r3, c8, c0, 0
RET
+#endif
END(bcopy_page_vfp)