arch-power: Modify Decrementer interrupt
authorkajoljain379 <kajoljain797@gmail.com>
Sat, 12 Jan 2019 08:13:32 +0000 (13:43 +0530)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sun, 24 Jan 2021 03:59:03 +0000 (03:59 +0000)
Modify decrementer interrupt handler.

Change-Id: Ibafd535e7cb5faeb3d4f6c479893bb72f01f944c
Signed-off-by: kajoljain379 <kajoljain797@gmail.com>
src/arch/power/faults.hh

index 55687dc6070aea6ba908cd52f9591dc6ab5f6bf3..1e7fc9f4a3b623511a4ff31f9ee947f30a197345 100644 (file)
@@ -145,14 +145,11 @@ class DecrementerInterrupt : public PowerInterrupt
     virtual void invoke(ThreadContext * tc, const StaticInstPtr &inst =
                         StaticInst::nullStaticInstPtr)
     {
-      Msr msr = tc->readIntReg(MISCREG_MSR);
       // Refer Power ISA Manual v3.0B Book-III, section 6.5.11
       tc->setIntReg(INTREG_SRR0 , tc->instAddr());
-      uint64_t srr1 = msr & 0xffffffff78fc0fff;
-      tc->setIntReg(INTREG_SRR1 , srr1);
-      msr = msr & 0xffffffffffff76cd;
-      tc->setIntReg(INTREG_MSR , msr);
-      tc->pcState(0x900);
+      PowerInterrupt::updateSRR1(tc);
+      PowerInterrupt::updateMsr(tc);
+      tc->pcState(DecrementerPCSet);
     }
 };