From 7c479d734922d0b9dd5c9b4404ef6d62b3d91075 Mon Sep 17 00:00:00 2001 From: Chander Sudanthi Date: Tue, 13 Sep 2011 12:06:13 -0500 Subject: [PATCH] CP15 c15: enable execution with accesses to c15 registers Previously, coprocessor accesses to CP15 c15 would fault. This patch enables accesses but prints out a warning, as the registers are not implemented. --- src/arch/arm/isa/formats/misc.isa | 3 +++ src/arch/arm/miscregs.cc | 2 +- src/arch/arm/miscregs.hh | 2 ++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/arch/arm/isa/formats/misc.isa b/src/arch/arm/isa/formats/misc.isa index 4a9200504..54482864a 100644 --- a/src/arch/arm/isa/formats/misc.isa +++ b/src/arch/arm/isa/formats/misc.isa @@ -143,6 +143,9 @@ let {{ case MISCREG_L2LATENCY: return new WarnUnimplemented( isRead ? "mrc l2latency" : "mcr l2latency", machInst); + case MISCREG_CRN15: + return new WarnUnimplemented( + isRead ? "mrc crn15" : "mcr crn15", machInst); // Write only. case MISCREG_TLBIALLIS: diff --git a/src/arch/arm/miscregs.cc b/src/arch/arm/miscregs.cc index 1fecaa38d..db097c653 100644 --- a/src/arch/arm/miscregs.cc +++ b/src/arch/arm/miscregs.cc @@ -463,7 +463,7 @@ decodeCP15Reg(unsigned crn, unsigned opc1, unsigned crm, unsigned opc2) break; case 15: // Implementation defined - break; + return MISCREG_CRN15; } // Unrecognized register return NUM_MISCREGS; diff --git a/src/arch/arm/miscregs.hh b/src/arch/arm/miscregs.hh index f99748622..5e5735de7 100644 --- a/src/arch/arm/miscregs.hh +++ b/src/arch/arm/miscregs.hh @@ -196,6 +196,7 @@ namespace ArmISA MISCREG_ISR, MISCREG_FCEIDR, MISCREG_L2LATENCY, + MISCREG_CRN15, MISCREG_CP15_END, @@ -249,6 +250,7 @@ namespace ArmISA "dccmvau", "nsacr", "vbar", "mvbar", "isr", "fceidr", "l2latency", + "crn15", "nop", "raz" };