equal
deleted
inserted
replaced
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; |