From 32b2572a9ea809b4e72f64fd5b0b0b5578d36425 Mon Sep 17 00:00:00 2001 From: Philip Guenthe Date: Sat, 4 Dec 2010 05:20:19 +0000 Subject: 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@ --- sys/arch/amd64/amd64/locore.S | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'sys/arch/amd64') 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 -- cgit v1.2.3