misc: Merge branch 'release-staging-v20.1.0.0' into develop

Change-Id: I3694b251855b969c7bd3807f34e1b4241d47d586
This commit is contained in:
Bobby R. Bruce
2020-09-30 20:39:06 -07:00
33 changed files with 198 additions and 91 deletions

View File

@@ -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));

View File

@@ -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;
}