kernel/eka/kernel/arm/ckernel.cpp
branchRCL_3
changeset 44 3e88ff8f41d5
parent 43 c1f20ce4abcf
equal deleted inserted replaced
43:c1f20ce4abcf 44:3e88ff8f41d5
   102 		if (pT->iOwningProcess == Kern::CurrentThread().iOwningProcess)
   102 		if (pT->iOwningProcess == Kern::CurrentThread().iOwningProcess)
   103 			{
   103 			{
   104 			if (Arm::FpExc() & VFP_FPEXC_EN)
   104 			if (Arm::FpExc() & VFP_FPEXC_EN)
   105 				{
   105 				{
   106 				*(TUint32*)(pT->iNThread.iExtraContext) = Arm::FpScr() & VFP_FPSCR_MODE_MASK;
   106 				*(TUint32*)(pT->iNThread.iExtraContext) = Arm::FpScr() & VFP_FPSCR_MODE_MASK;
   107 				}
       
   108 			else
       
   109 				{
       
   110 				*(TUint32*)(pT->iNThread.iExtraContext) = *(TUint32*)(Kern::CurrentThread().iNThread.iExtraContext);
       
   111 				}
   107 				}
   112 			}
   108 			}
   113 		}
   109 		}
   114 #endif
   110 #endif
   115 
   111 
   359 	{
   355 	{
   360 #ifdef __SMP__
   356 #ifdef __SMP__
   361 	TSubScheduler* ss = &SubScheduler();
   357 	TSubScheduler* ss = &SubScheduler();
   362 	if (!ss)
   358 	if (!ss)
   363 		ss = &TheSubSchedulers[0];
   359 		ss = &TheSubSchedulers[0];
   364 	ss->iSSX.iExcInfo = aExcInfo;
   360 	ss->i_ExcInfo = aExcInfo;
   365 	SFullArmRegSet* a = ss->iSSX.iRegs;
   361 	SFullArmRegSet* a = (SFullArmRegSet*)ss->i_Regs;
   366 	if (!a)
   362 	if (!a)
   367 		a = &DefaultRegSet;
   363 		a = &DefaultRegSet;
   368 #else
   364 #else
   369 	TheScheduler.i_ExcInfo = aExcInfo;
   365 	TheScheduler.i_ExcInfo = aExcInfo;
   370 	SFullArmRegSet* a = (SFullArmRegSet*)TheScheduler.i_Regs;
   366 	SFullArmRegSet* a = (SFullArmRegSet*)TheScheduler.i_Regs;