diff -r c1f20ce4abcf -r 3e88ff8f41d5 kernel/eka/nkernsmp/x86/ncutilf.cia --- a/kernel/eka/nkernsmp/x86/ncutilf.cia Tue Aug 31 16:34:26 2010 +0300 +++ b/kernel/eka/nkernsmp/x86/ncutilf.cia Wed Sep 01 12:34:56 2010 +0100 @@ -74,9 +74,8 @@ asm("test cl, 3 "); asm("jnz short use_tsc_only "); asm("rdtsc "); - asm("lea ecx, [ecx+%0]" : : "i" _FOFF(TSubScheduler, iSSX.iTimestampOffset)); - asm("add eax, [ecx] "); - asm("adc edx, [ecx+4] "); + asm("add eax, [ecx+80+%0]" : : "i" _FOFF(TSubScheduler, iExtras)); + asm("adc edx, [ecx+84+%0]" : : "i" _FOFF(TSubScheduler, iExtras)); asm("popfd "); asm("ret "); @@ -134,7 +133,7 @@ asm("slec_preemption: "); asm("cmp cl, 0xff "); asm("je short slec_1 "); /* EOrderNone - don't check interrupts or preemption */ - asm("cmp dword ptr [edx+%0], 0" : : "i"_FOFF(TSubScheduler, iSSX.iIrqNestCount)); + asm("cmp dword ptr [edx+52+%0], 0" : : "i"_FOFF(TSubScheduler, iExtras)); asm("jge short slec_preemption_die "); /* If called from ISR, die */ asm("cmp dword ptr [edx+%0], 0" : : "i" _FOFF(TSubScheduler, iKernLockCount)); asm("jnz short slec_1 "); /* Preemption disabled - OK */ @@ -485,7 +484,7 @@ asm("rwrlec_preemption: "); asm("cmp cl, 0xff "); asm("je short rwrlec_1 "); /* EOrderNone - don't check interrupts or preemption */ - asm("cmp dword ptr [edx+%0], 0" : : "i"_FOFF(TSubScheduler, iSSX.iIrqNestCount)); + asm("cmp dword ptr [edx+52+%0], 0" : : "i"_FOFF(TSubScheduler, iExtras)); asm("jge short rwrlec_preemption_die "); /* If called from ISR, die */ asm("cmp dword ptr [edx+%0], 0" : : "i" _FOFF(TSubScheduler, iKernLockCount)); asm("jnz short rwrlec_1 "); /* Preemption disabled - OK */ @@ -642,7 +641,7 @@ asm("rwwlec_preemption: "); asm("cmp cl, 0xff "); asm("je short rwwlec_1 "); /* EOrderNone - don't check interrupts or preemption */ - asm("cmp dword ptr [edx+%0], 0" : : "i"_FOFF(TSubScheduler, iSSX.iIrqNestCount)); + asm("cmp dword ptr [edx+52+%0], 0" : : "i"_FOFF(TSubScheduler, iExtras)); asm("jge short rwwlec_preemption_die "); /* If called from ISR, die */ asm("cmp dword ptr [edx+%0], 0" : : "i" _FOFF(TSubScheduler, iKernLockCount)); asm("jnz short rwwlec_1 "); /* Preemption disabled - OK */