From a2d246b6b8379f9a74dbc56feefc155f615b5ea4 Mon Sep 17 00:00:00 2001 From: Andreas Hansson Date: Thu, 16 Oct 2014 05:49:51 -0400 Subject: 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". --- src/arch/power/isa/formats/unimp.isa | 2 +- src/arch/power/isa/formats/unknown.isa | 2 +- src/arch/power/tlb.cc | 2 +- src/arch/power/tlb.hh | 1 - 4 files changed, 3 insertions(+), 4 deletions(-) (limited to 'src/arch/power') diff --git a/src/arch/power/isa/formats/unimp.isa b/src/arch/power/isa/formats/unimp.isa index b3e7e6073..daee8f559 100644 --- a/src/arch/power/isa/formats/unimp.isa +++ b/src/arch/power/isa/formats/unimp.isa @@ -117,7 +117,7 @@ output exec {{ panic("attempt to execute unimplemented instruction '%s' " "(inst 0x%08x, opcode 0x%x, binary:%s)", mnemonic, machInst, OPCODE, inst2string(machInst)); - return new UnimplementedOpcodeFault; + return std::make_shared(); } Fault diff --git a/src/arch/power/isa/formats/unknown.isa b/src/arch/power/isa/formats/unknown.isa index e355397c9..d9985e7c6 100644 --- a/src/arch/power/isa/formats/unknown.isa +++ b/src/arch/power/isa/formats/unknown.isa @@ -77,7 +77,7 @@ output exec {{ panic("attempt to execute unknown instruction at %#x" "(inst 0x%08x, opcode 0x%x, binary: %s)", xc->pcState().pc(), machInst, OPCODE, inst2string(machInst)); - return new UnimplementedOpcodeFault; + return std::make_shared(); } }}; diff --git a/src/arch/power/tlb.cc b/src/arch/power/tlb.cc index 1396d726c..950483893 100644 --- a/src/arch/power/tlb.cc +++ b/src/arch/power/tlb.cc @@ -282,7 +282,7 @@ TLB::translateInst(RequestPtr req, ThreadContext *tc) if (req->getVaddr() & 0x3) { DPRINTF(TLB, "Alignment Fault on %#x, size = %d\n", req->getVaddr(), req->getSize()); - return new AlignmentFault(); + return std::make_shared(); } Process * p = tc->getProcessPtr(); diff --git a/src/arch/power/tlb.hh b/src/arch/power/tlb.hh index b18956b07..9ea1fca8b 100644 --- a/src/arch/power/tlb.hh +++ b/src/arch/power/tlb.hh @@ -46,7 +46,6 @@ #include "base/statistics.hh" #include "mem/request.hh" #include "params/PowerTLB.hh" -#include "sim/fault_fwd.hh" #include "sim/tlb.hh" class ThreadContext; -- cgit v1.2.3