From 053bb85b3220986f56fbbd24bd5bc7c04dea4ce6 Mon Sep 17 00:00:00 2001 From: Giacomo Travaglini Date: Fri, 20 Oct 2017 14:18:00 +0100 Subject: arch-arm: Removing FlushPipe fault, using SquashAfter This Patch is removing the FlushPipe ArmFault, which was used for flushing the pipeline in favour of the general IsSquashAfter StaticInstr flag. Using a fault was preventing tracers from tracing barriers like ISB and from adding them to the instruction count Change-Id: I176e9254eca904694f2f611eb486c55e50ec61ff Signed-off-by: Giacomo Travaglini Reviewed-by: Giacomo Gabrielli Reviewed-on: https://gem5-review.googlesource.com/5361 Reviewed-by: Andreas Sandberg Maintainer: Andreas Sandberg --- src/arch/arm/isa/insts/misc.isa | 7 +++---- src/arch/arm/isa/insts/misc64.isa | 11 +++++------ 2 files changed, 8 insertions(+), 10 deletions(-) (limited to 'src/arch/arm/isa/insts') diff --git a/src/arch/arm/isa/insts/misc.isa b/src/arch/arm/isa/insts/misc.isa index 4681d50a9..b42c9f9dd 100644 --- a/src/arch/arm/isa/insts/misc.isa +++ b/src/arch/arm/isa/insts/misc.isa @@ -1070,12 +1070,11 @@ let {{ return std::make_shared(machInst, imm, EC_TRAPPED_CP15_MCR_MRC); } - fault = std::make_shared(); ''' isbIop = InstObjParams("isb", "Isb", "ImmOp", {"code": isbCode, "predicate_test": predicateTest}, - ['IsSerializeAfter']) + ['IsSerializeAfter', 'IsSquashAfter']) header_output += ImmOpDeclare.subst(isbIop) decoder_output += ImmOpConstructor.subst(isbIop) exec_output += PredOpExecute.subst(isbIop) @@ -1087,12 +1086,12 @@ let {{ return std::make_shared(machInst, imm, EC_TRAPPED_CP15_MCR_MRC); } - fault = std::make_shared(); ''' dsbIop = InstObjParams("dsb", "Dsb", "ImmOp", {"code": dsbCode, "predicate_test": predicateTest}, - ['IsMemBarrier', 'IsSerializeAfter']) + ['IsMemBarrier', 'IsSerializeAfter', + 'IsSquashAfter']) header_output += ImmOpDeclare.subst(dsbIop) decoder_output += ImmOpConstructor.subst(dsbIop) exec_output += PredOpExecute.subst(dsbIop) diff --git a/src/arch/arm/isa/insts/misc64.isa b/src/arch/arm/isa/insts/misc64.isa index 08902abe8..ac9f0a960 100644 --- a/src/arch/arm/isa/insts/misc64.isa +++ b/src/arch/arm/isa/insts/misc64.isa @@ -139,16 +139,15 @@ let {{ decoder_output += BasicConstructor64.subst(unknown64Iop) exec_output += BasicExecute.subst(unknown64Iop) - isbIop = InstObjParams("isb", "Isb64", "ArmStaticInst", - "fault = std::make_shared();", - ['IsSerializeAfter']) + isbIop = InstObjParams("isb", "Isb64", "ArmStaticInst", "", + ['IsSerializeAfter', 'IsSquashAfter']) header_output += BasicDeclare.subst(isbIop) decoder_output += BasicConstructor64.subst(isbIop) exec_output += BasicExecute.subst(isbIop) - dsbIop = InstObjParams("dsb", "Dsb64", "ArmStaticInst", - "fault = std::make_shared();", - ['IsMemBarrier', 'IsSerializeAfter']) + dsbIop = InstObjParams("dsb", "Dsb64", "ArmStaticInst", "", + ['IsMemBarrier', 'IsSerializeAfter', + 'IsSquashAfter']) header_output += BasicDeclare.subst(dsbIop) decoder_output += BasicConstructor64.subst(dsbIop) exec_output += BasicExecute.subst(dsbIop) -- cgit v1.2.3