From: Giacomo Travaglini Date: Thu, 15 Feb 2018 09:55:20 +0000 (+0000) Subject: arch-arm: Make hlt64 a mem barrier with semihosting X-Git-Tag: v19.0.0.0~2276 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=38a1e23c3910aa10c41478ba1715f50c4b4a8ac2;p=gem5.git arch-arm: Make hlt64 a mem barrier with semihosting The HLT instruction is used to trap into semihosting. The semihosting code can change the contents of memory behind the back of the CPU, which requires instructions triggering semihosting to be non-speculative and memory barriers. Change-Id: I735166251aa194120ad49c08082d4ac65fe96524 Signed-off-by: Giacomo Travaglini Reviewed-by: Andreas Sandberg Reviewed-on: https://gem5-review.googlesource.com/8373 Maintainer: Andreas Sandberg --- diff --git a/src/arch/arm/isa/insts/misc64.isa b/src/arch/arm/isa/insts/misc64.isa index 17d8df10d..2621905c7 100644 --- a/src/arch/arm/isa/insts/misc64.isa +++ b/src/arch/arm/isa/insts/misc64.isa @@ -191,6 +191,6 @@ let {{ hltIop = InstObjParams("hlt", "Hlt64", "ImmOp64", hltCode, ["IsNonSpeculative"]) header_output += ImmOp64Declare.subst(hltIop) - decoder_output += ImmOp64Constructor.subst(hltIop) + decoder_output += SemihostConstructor64.subst(hltIop) exec_output += BasicExecute.subst(hltIop) }};