Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch/arm/vfp Add not-yet-enabled code to use vfp_kernel_...
details: https://anonhg.NetBSD.org/src/rev/6a39871000cc
branches: trunk
changeset: 783504:6a39871000cc
user: matt <matt%NetBSD.org@localhost>
date: Wed Dec 26 18:35:47 2012 +0000
description:
Add not-yet-enabled code to use vfp_kernel_{acquire,release}
diffstat:
sys/arch/arm/vfp/pmap_vfp.S | 22 +++++++++++++++++++++-
1 files changed, 21 insertions(+), 1 deletions(-)
diffs (75 lines):
diff -r b5a9abc0ace7 -r 6a39871000cc sys/arch/arm/vfp/pmap_vfp.S
--- a/sys/arch/arm/vfp/pmap_vfp.S Wed Dec 26 18:34:56 2012 +0000
+++ b/sys/arch/arm/vfp/pmap_vfp.S Wed Dec 26 18:35:47 2012 +0000
@@ -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 @@
*/
/* 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 @@
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 @@
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 @@
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)
Home |
Main Index |
Thread Index |
Old Index