kernel/eka/nkernsmp/x86/ncutilf.cia
branchRCL_3
changeset 257 3e88ff8f41d5
parent 256 c1f20ce4abcf
--- 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 */