| version 1.19, 2003/09/12 16:51:04 |
version 1.20, 2003/11/04 10:33:15 |
| Line 1951 switch_restored: |
|
| Line 1951 switch_restored: |
|
| */ |
*/ |
| movl CPUVAR(CURLWP),%edi |
movl CPUVAR(CURLWP),%edi |
| movl L_PROC(%edi),%esi |
movl L_PROC(%edi),%esi |
| cmpl $0,P_NRAS(%esi) |
cmpl $0,P_RASLIST(%esi) |
| je 1f |
jne 2f |
| movl L_MD_REGS(%edi),%ebx |
|
| movl TF_EIP(%ebx),%eax |
|
| pushl %eax |
|
| pushl %esi |
|
| call _C_LABEL(ras_lookup) |
|
| addl $8,%esp |
|
| cmpl $-1,%eax |
|
| je 1f |
|
| movl %eax,TF_EIP(%ebx) |
|
| 1: |
1: |
| movl $1,%ebx |
movl $1,%ebx |
| |
|
|
|
| popl %ebx |
popl %ebx |
| ret |
ret |
| |
|
| |
2: # check RAS list |
| |
movl L_MD_REGS(%edi),%ebx |
| |
movl TF_EIP(%ebx),%eax |
| |
pushl %eax |
| |
pushl %esi |
| |
call _C_LABEL(ras_lookup) |
| |
addl $8,%esp |
| |
cmpl $-1,%eax |
| |
je 1b |
| |
movl %eax,TF_EIP(%ebx) |
| |
jmp 1b |
| |
|
| /* |
/* |
| * void cpu_switchto(struct lwp *current, struct lwp *next) |
* void cpu_switchto(struct lwp *current, struct lwp *next) |
| * Switch to the specified next LWP. |
* Switch to the specified next LWP. |