| version 1.8, 2003/04/26 18:13:16 |
version 1.9, 2003/05/13 08:26:32 |
|
|
| SET_CURLWP(%edi,%ecx) |
SET_CURLWP(%edi,%ecx) |
| |
|
| /* Skip context switch if same lwp. */ |
/* Skip context switch if same lwp. */ |
| movl $1, %eax |
movl $1, %ebx |
| cmpl %edi,%esi |
cmpl %edi,%esi |
| je switch_return |
je switch_return |
| |
|
| Line 1961 switch_restored: |
|
| Line 1961 switch_restored: |
|
| je 1f |
je 1f |
| movl %eax,TF_EIP(%ebx) |
movl %eax,TF_EIP(%ebx) |
| 1: |
1: |
| xor %eax,%eax |
xor %ebx,%ebx |
| |
|
| switch_return: |
switch_return: |
| #if defined(MULTIPROCESSOR) || defined(LOCKDEBUG) |
#if defined(MULTIPROCESSOR) || defined(LOCKDEBUG) |
|
|
| call _C_LABEL(Xspllower) # process pending interrupts |
call _C_LABEL(Xspllower) # process pending interrupts |
| addl $4,%esp |
addl $4,%esp |
| movl $IPL_HIGH,CPUVAR(ILEVEL) # splhigh() |
movl $IPL_HIGH,CPUVAR(ILEVEL) # splhigh() |
| |
|
| |
movl %ebx,%eax |
| |
|
| popl %edi |
popl %edi |
| popl %esi |
popl %esi |