From 38a1e23c3910aa10c41478ba1715f50c4b4a8ac2 Mon Sep 17 00:00:00 2001 From: Giacomo Travaglini Date: Thu, 15 Feb 2018 09:55:20 +0000 Subject: [PATCH] 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 --- src/arch/arm/isa/insts/misc64.isa | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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) }}; -- 2.30.2