From 6217ac737b405ec59eb71696938ca449787b1dd6 Mon Sep 17 00:00:00 2001 From: Giacomo Travaglini Date: Tue, 19 Jul 2022 09:21:24 +0100 Subject: [PATCH] arch-arm: Overload decodeAArch64SysReg to accept a MiscRegNum64 Overload decodeAArch64SysReg to directly accept a MiscRegNum64 Change-Id: I43c1dae6c0e382c03612f4ce4fc89aadddf30fd5 Signed-off-by: Giacomo Travaglini Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/61669 Reviewed-by: Andreas Sandberg Reviewed-by: Richard Cooper Maintainer: Andreas Sandberg Tested-by: kokoro --- src/arch/arm/regs/misc.cc | 9 ++++++++- src/arch/arm/regs/misc.hh | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/arch/arm/regs/misc.cc b/src/arch/arm/regs/misc.cc index 133411b144..e5cf50cca0 100644 --- a/src/arch/arm/regs/misc.cc +++ b/src/arch/arm/regs/misc.cc @@ -1297,12 +1297,19 @@ decodeAArch64SysReg(unsigned op0, unsigned op1, unsigned op2) { MiscRegNum64 sys_reg(op0, op1, crn, crm, op2); + return decodeAArch64SysReg(sys_reg); +} + +MiscRegIndex +decodeAArch64SysReg(const MiscRegNum64 &sys_reg) +{ auto it = miscRegNumToIdx.find(sys_reg); if (it != miscRegNumToIdx.end()) { return it->second; } else { // Check for a pseudo register before returning MISCREG_UNKNOWN - if ((op0 == 1 || op0 == 3) && (crn == 11 || crn == 15)) { + if ((sys_reg.op0 == 1 || sys_reg.op0 == 3) && + (sys_reg.crn == 11 || sys_reg.crn == 15)) { return MISCREG_IMPDEF_UNIMPL; } else { return MISCREG_UNKNOWN; diff --git a/src/arch/arm/regs/misc.hh b/src/arch/arm/regs/misc.hh index 141b3aad50..e9a83c4628 100644 --- a/src/arch/arm/regs/misc.hh +++ b/src/arch/arm/regs/misc.hh @@ -1259,6 +1259,7 @@ namespace ArmISA MiscRegIndex decodeAArch64SysReg(unsigned op0, unsigned op1, unsigned crn, unsigned crm, unsigned op2); + MiscRegIndex decodeAArch64SysReg(const MiscRegNum64 &misc_reg); MiscRegNum64 encodeAArch64SysReg(MiscRegIndex misc_reg); // Whether a particular AArch64 system register is -always- read only.