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: |