version 1.48.8.4, 2007/11/11 16:46:31 |
version 1.51.2.3, 2007/11/18 19:34:28 |
|
|
*/ |
*/ |
|
|
#include "opt_compat_oldboot.h" |
#include "opt_compat_oldboot.h" |
#include "opt_cputype.h" |
|
#include "opt_ddb.h" |
#include "opt_ddb.h" |
#include "opt_realmem.h" |
#include "opt_realmem.h" |
#include "opt_vm86.h" |
#include "opt_vm86.h" |
Line 767 ENTRY(cpu_switchto) |
|
Line 766 ENTRY(cpu_switchto) |
|
testl $LW_SYSTEM,L_FLAG(%edi) |
testl $LW_SYSTEM,L_FLAG(%edi) |
jnz 4f |
jnz 4f |
|
|
/* Is this process using RAS (restartable atomic sequences)? */ |
|
movl L_PROC(%edi),%eax |
|
cmpl $0,P_RASLIST(%eax) |
|
jne 5f |
|
|
|
/* Restore thread-private %fs/%gs descriptors. */ |
/* Restore thread-private %fs/%gs descriptors. */ |
movl PCB_FSD(%ebx), %eax |
movl PCB_FSD(%ebx), %eax |
movl PCB_FSD+4(%ebx), %edx |
movl PCB_FSD+4(%ebx), %edx |
Line 782 ENTRY(cpu_switchto) |
|
Line 776 ENTRY(cpu_switchto) |
|
movl %eax, (GUGS_SEL*8)(%ecx) |
movl %eax, (GUGS_SEL*8)(%ecx) |
movl %edx, (GUGS_SEL*8+4)(%ecx) |
movl %edx, (GUGS_SEL*8+4)(%ecx) |
|
|
|
/* Is this process using RAS (restartable atomic sequences)? */ |
|
movl L_PROC(%edi),%eax |
|
cmpl $0,P_RASLIST(%eax) |
|
jne 5f |
|
|
/* |
/* |
* Restore cr0 (including FPU state). Raise the IPL to IPL_IPI. |
* Restore cr0 (including FPU state). Raise the IPL to IPL_IPI. |
* FPU IPIs can alter the LWP's saved cr0. Dropping the priority |
* FPU IPIs can alter the LWP's saved cr0. Dropping the priority |