From 8af1eeec6f28d9722802bf1588c911711db07ddd Mon Sep 17 00:00:00 2001 From: Ali Saidi Date: Mon, 4 Apr 2011 11:42:29 -0500 Subject: ARM: Use CPU local lock before sending load to mem system. This change uses the locked_mem.hh header to handle implementing CLREX. It simplifies the current implementation greatly. --- src/arch/arm/isa/insts/misc.isa | 8 ++------ 1 file changed, 2 insertions(+), 6 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 35df88c81..7333faef0 100644 --- a/src/arch/arm/isa/insts/misc.isa +++ b/src/arch/arm/isa/insts/misc.isa @@ -680,18 +680,14 @@ let {{ exec_output += PredOpExecute.subst(setendIop) clrexCode = ''' - unsigned memAccessFlags = Request::CLEAR_LL | - ArmISA::TLB::AlignWord | Request::LLSC; - fault = xc->read(0, (uint32_t&)Mem, memAccessFlags); + LLSCLock = 0; ''' clrexIop = InstObjParams("clrex", "Clrex","PredOp", { "code": clrexCode, "predicate_test": predicateTest },[]) - header_output += ClrexDeclare.subst(clrexIop) + header_output += BasicDeclare.subst(clrexIop) decoder_output += BasicConstructor.subst(clrexIop) exec_output += PredOpExecute.subst(clrexIop) - exec_output += ClrexInitiateAcc.subst(clrexIop) - exec_output += ClrexCompleteAcc.subst(clrexIop) isbCode = ''' fault = new FlushPipe; -- cgit v1.2.3