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 <giacomo.travaglini@arm.com> Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/8373 Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
diff --git a/src/arch/arm/isa/insts/misc64.isa b/src/arch/arm/isa/insts/misc64.isa index 17d8df1..2621905 100644 --- a/src/arch/arm/isa/insts/misc64.isa +++ b/src/arch/arm/isa/insts/misc64.isa
@@ -191,6 +191,6 @@ 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) }};