summaryrefslogtreecommitdiff
path: root/sys/arch
diff options
context:
space:
mode:
authorPhilip Guenthe <guenther@cvs.openbsd.org>2010-12-04 05:20:19 +0000
committerPhilip Guenthe <guenther@cvs.openbsd.org>2010-12-04 05:20:19 +0000
commit32b2572a9ea809b4e72f64fd5b0b0b5578d36425 (patch)
treef8c557eb414c77033fb88025da3772bc3b3b44f7 /sys/arch
parent8320d01a0d6804cb6d2d0d798fcfbe499dd231c0 (diff)
The pm_cpus member of the pmap is now a 64bit integer: update the assembly
used in cpu_switch() for handling it. Also, delete an unnecessary instruction that I added while debugging the pm_cpus handling before ok kettenis@
Diffstat (limited to 'sys/arch')
-rw-r--r--sys/arch/amd64/amd64/locore.S7
1 files changed, 3 insertions, 4 deletions
diff --git a/sys/arch/amd64/amd64/locore.S b/sys/arch/amd64/amd64/locore.S
index 556b51a35a9..f7016f9b4d3 100644
--- a/sys/arch/amd64/amd64/locore.S
+++ b/sys/arch/amd64/amd64/locore.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: locore.S,v 1.43 2010/11/13 04:16:42 guenther Exp $ */
+/* $OpenBSD: locore.S,v 1.44 2010/12/04 05:20:18 guenther Exp $ */
/* $NetBSD: locore.S,v 1.13 2004/03/25 18:33:17 drochner Exp $ */
/*
@@ -762,7 +762,7 @@ ENTRY(cpu_switchto)
/* clear the old pmap's bit for the cpu */
movq PCB_PMAP(%r13),%rcx
lock
- btrl %edi,PM_CPUS(%rcx)
+ btrq %rdi,PM_CPUS(%rcx)
/* Save stack pointers. */
movq %rsp,PCB_RSP(%r13)
@@ -800,9 +800,8 @@ switch_exited:
/* set the new pmap's bit for the cpu */
movl CPUVAR(CPUID),%edi
movq PCB_PMAP(%r13),%rcx
- movl PM_CPUS(%rcx),%eax
lock
- btsl %edi,PM_CPUS(%rcx)
+ btsq %rdi,PM_CPUS(%rcx)
#ifdef DIAGNOSTIC
jc _C_LABEL(switch_pmcpu_set)
#endif