diff options
author | Andreas Hansson <andreas.hansson@arm.com> | 2014-10-16 05:49:51 -0400 |
---|---|---|
committer | Andreas Hansson <andreas.hansson@arm.com> | 2014-10-16 05:49:51 -0400 |
commit | a2d246b6b8379f9a74dbc56feefc155f615b5ea4 (patch) | |
tree | bbfaf7a39edebda5ca7ddac9af5e205823d37e10 /src/arch/arm/isa/insts/misc64.isa | |
parent | a769963d16b7b259580fa2da1e84f62aae0a5a42 (diff) | |
download | gem5-a2d246b6b8379f9a74dbc56feefc155f615b5ea4.tar.xz |
arch: Use shared_ptr for all Faults
This patch takes quite a large step in transitioning from the ad-hoc
RefCountingPtr to the c++11 shared_ptr by adopting its use for all
Faults. There are no changes in behaviour, and the code modifications
are mostly just replacing "new" with "make_shared".
Diffstat (limited to 'src/arch/arm/isa/insts/misc64.isa')
-rw-r--r-- | src/arch/arm/isa/insts/misc64.isa | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/arch/arm/isa/insts/misc64.isa b/src/arch/arm/isa/insts/misc64.isa index 6ebbcc2ba..e063813c7 100644 --- a/src/arch/arm/isa/insts/misc64.isa +++ b/src/arch/arm/isa/insts/misc64.isa @@ -39,7 +39,7 @@ let {{ svcCode = ''' - fault = new SupervisorCall(machInst, bits(machInst, 20, 5)); + fault = std::make_shared<SupervisorCall>(machInst, bits(machInst, 20, 5)); ''' svcIop = InstObjParams("svc", "Svc64", "ArmStaticInst", @@ -57,7 +57,7 @@ let {{ if (!ArmSystem::haveSecurity(xc->tcBase()) || inUserMode(cpsr) || scr.smd) { fault = disabledFault(); } else { - fault = new SecureMonitorCall(machInst); + fault = std::make_shared<SecureMonitorCall>(machInst); } ''' @@ -112,7 +112,7 @@ let {{ subst("RegRegRegImmOp64", extrIop); unknownCode = ''' - return new UndefinedInstruction(machInst, true); + return std::make_shared<UndefinedInstruction>(machInst, true); ''' unknown64Iop = InstObjParams("unknown", "Unknown64", "UnknownOp64", unknownCode) @@ -121,13 +121,14 @@ let {{ exec_output += BasicExecute.subst(unknown64Iop) isbIop = InstObjParams("isb", "Isb64", "ArmStaticInst", - "fault = new FlushPipe;", ['IsSerializeAfter']) + "fault = std::make_shared<FlushPipe>();", + ['IsSerializeAfter']) header_output += BasicDeclare.subst(isbIop) decoder_output += BasicConstructor64.subst(isbIop) exec_output += BasicExecute.subst(isbIop) dsbIop = InstObjParams("dsb", "Dsb64", "ArmStaticInst", - "fault = new FlushPipe;", + "fault = std::make_shared<FlushPipe>();", ['IsMemBarrier', 'IsSerializeAfter']) header_output += BasicDeclare.subst(dsbIop) decoder_output += BasicConstructor64.subst(dsbIop) |