From 16e06bad0c94964cdde99b783d84162ec54c4fc1 Mon Sep 17 00:00:00 2001 From: Giacomo Travaglini Date: Fri, 2 Feb 2024 09:27:09 +0000 Subject: [PATCH] arch-arm: Exec Crypto instructions only if SIMD&FP enabled We not only check for the presence of the relative FEAT_*, we also check if AdvSIMD is enabled; we throw an undefined instruction otherwise. Change-Id: I1fd0cdc8057c5a7901774802dc076817f06c8e66 Signed-off-by: Giacomo Travaglini Reviewed-by: Andreas Sandberg --- src/arch/arm/isa/insts/crypto.isa | 2 +- src/arch/arm/isa/insts/crypto64.isa | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/arch/arm/isa/insts/crypto.isa b/src/arch/arm/isa/insts/crypto.isa index bbefa055e0..5faa4b90d5 100644 --- a/src/arch/arm/isa/insts/crypto.isa +++ b/src/arch/arm/isa/insts/crypto.isa @@ -41,7 +41,7 @@ let {{ if (!HaveExt(xc->tcBase(), %(extension)s)) { return std::make_shared(machInst, true); } - ''' + ''' + simdEnabledCheckCode header_output = "" decoder_output = "" diff --git a/src/arch/arm/isa/insts/crypto64.isa b/src/arch/arm/isa/insts/crypto64.isa index a96789d9ec..0ed0867136 100644 --- a/src/arch/arm/isa/insts/crypto64.isa +++ b/src/arch/arm/isa/insts/crypto64.isa @@ -44,7 +44,8 @@ let {{ if (!HaveExt(xc->tcBase(), %(extension)s)) { return std::make_shared(machInst, true); } - ''' + ''' + simd64EnabledCheckCode + cryptoRegRegRegPrefix = ''' Crypto crypto; RegVect srcReg1, srcReg2, destReg;