Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch/arm/arm32 Rearrange the beginning of cpu_switch() s...
details: https://anonhg.NetBSD.org/src/rev/5d0a8f7a0323
branches: trunk
changeset: 535242:5d0a8f7a0323
user: thorpej <thorpej%NetBSD.org@localhost>
date: Mon Aug 12 21:00:12 2002 +0000
description:
Rearrange the beginning of cpu_switch() slightly to reduce data-dep
stalls on StrongARM and XScale.
diffstat:
sys/arch/arm/arm32/cpuswitch.S | 15 +++++++--------
1 files changed, 7 insertions(+), 8 deletions(-)
diffs (32 lines):
diff -r a01598098113 -r 5d0a8f7a0323 sys/arch/arm/arm32/cpuswitch.S
--- a/sys/arch/arm/arm32/cpuswitch.S Mon Aug 12 20:56:07 2002 +0000
+++ b/sys/arch/arm/arm32/cpuswitch.S Mon Aug 12 21:00:12 2002 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: cpuswitch.S,v 1.10 2002/08/12 19:33:01 thorpej Exp $ */
+/* $NetBSD: cpuswitch.S,v 1.11 2002/08/12 21:00:12 thorpej Exp $ */
/*
* Copyright (c) 1994-1998 Mark Brinicombe.
@@ -281,16 +281,15 @@
/*
* Get the current process and indicate that there is no longer
- * a valid process (curproc = 0)
+ * a valid process (curproc = 0). Zero the current PCB pointer
+ * while we're at it.
*/
ldr r7, Lcurproc
- ldr r1, [r7]
+ ldr r6, Lcurpcb
mov r0, #0x00000000
- str r0, [r7]
-
- /* Zero the pcb */
- ldr r7, Lcurpcb
- str r0, [r7]
+ ldr r1, [r7] /* r1 = curproc */
+ str r0, [r7] /* curproc = NULL */
+ str r0, [r6] /* curpcb = NULL */
/* stash the old proc while we call functions */
mov r5, r1
Home |
Main Index |
Thread Index |
Old Index