| version 1.3, 2002/12/17 19:47:15 |
version 1.4, 2002/12/17 20:49:07 |
| Line 1944 switch_restored: |
|
| Line 1944 switch_restored: |
|
| |
|
| /* |
/* |
| * Check for restartable atomic sequences (RAS) |
* Check for restartable atomic sequences (RAS) |
| * XXX %edi reloads are not necessary here as %edi is callee-saved! |
|
| */ |
*/ |
| movl CPUVAR(CURPROC),%edi |
movl CPUVAR(CURPROC),%edi |
| cmpl $0,P_NRAS(%edi) |
cmpl $0,P_NRAS(%edi) |
| je 1f |
je 1f |
| movl P_MD_REGS(%edi),%edx |
movl P_MD_REGS(%edi),%ebx |
| movl TF_EIP(%edx),%eax |
movl TF_EIP(%ebx),%eax |
| pushl %eax |
pushl %eax |
| pushl %edi |
pushl %edi |
| call _C_LABEL(ras_lookup) |
call _C_LABEL(ras_lookup) |
| addl $8,%esp |
addl $8,%esp |
| cmpl $-1,%eax |
cmpl $-1,%eax |
| je 1f |
je 1f |
| movl CPUVAR(CURPROC),%edi |
movl %eax,TF_EIP(%ebx) |
| movl P_MD_REGS(%edi),%edx |
|
| movl %eax,TF_EIP(%edx) |
|
| 1: |
1: |
| |
|
| switch_return: |
switch_return: |