misc: Merge branch 'release-staging-v20.1.0.0' into develop
Change-Id: I3694b251855b969c7bd3807f34e1b4241d47d586
This commit is contained in:
@@ -109,15 +109,16 @@ Tstart64::completeAcc(PacketPtr pkt, ExecContext *xc,
|
||||
|
||||
// checkpointing occurs in the outer transaction only
|
||||
if (htm_depth == 1) {
|
||||
auto new_cpt = new HTMCheckpoint();
|
||||
BaseHTMCheckpointPtr& cpt = xc->tcBase()->getHtmCheckpointPtr();
|
||||
|
||||
new_cpt->save(tc);
|
||||
new_cpt->destinationRegister(dest);
|
||||
HTMCheckpoint *armcpt =
|
||||
dynamic_cast<HTMCheckpoint*>(cpt.get());
|
||||
assert(armcpt != nullptr);
|
||||
|
||||
armcpt->save(tc);
|
||||
armcpt->destinationRegister(dest);
|
||||
|
||||
ArmISA::globalClearExclusive(tc);
|
||||
|
||||
xc->tcBase()->setHtmCheckpointPtr(
|
||||
std::unique_ptr<BaseHTMCheckpoint>(new_cpt));
|
||||
}
|
||||
|
||||
xc->setIntRegOperand(this, 0, (Dest64) & mask(intWidth));
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
#include "arch/arm/isa.hh"
|
||||
|
||||
#include "arch/arm/faults.hh"
|
||||
#include "arch/arm/htm.hh"
|
||||
#include "arch/arm/interrupts.hh"
|
||||
#include "arch/arm/pmu.hh"
|
||||
#include "arch/arm/self_debug.hh"
|
||||
@@ -439,9 +440,15 @@ ISA::startup()
|
||||
{
|
||||
BaseISA::startup();
|
||||
|
||||
if (tc)
|
||||
if (tc) {
|
||||
setupThreadContext();
|
||||
|
||||
if (haveTME) {
|
||||
std::unique_ptr<BaseHTMCheckpoint> cpt(new HTMCheckpoint());
|
||||
tc->setHtmCheckpointPtr(std::move(cpt));
|
||||
}
|
||||
}
|
||||
|
||||
afterStartup = true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user