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)