summaryrefslogtreecommitdiff
path: root/src/arch/arm/isa
diff options
context:
space:
mode:
authorGiacomo Travaglini <giacomo.travaglini@arm.com>2018-04-30 17:13:54 +0100
committerGiacomo Travaglini <giacomo.travaglini@arm.com>2018-06-14 13:45:07 +0000
commit831184d2949fbd790a2040738079ca03c8cfdefe (patch)
tree3432bff52f11da340cf04bdf3196a11c11c9fda6 /src/arch/arm/isa
parent4a37134f5f739a2cfed6426d296f7755044d2d28 (diff)
downloadgem5-831184d2949fbd790a2040738079ca03c8cfdefe.tar.xz
arch-arm: Read APSR in User Mode
This patch substitutes reads to the CPSR in user mode (MRS CPSR) to reads to APSR (Application Program Status Register). This is the user level alias for the CPSR. The APSR is a subset of the CPSR. Change-Id: I18a70693aef6fd305a4c4cb3c6f81f331bc60a2d Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/10602 Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Diffstat (limited to 'src/arch/arm/isa')
-rw-r--r--src/arch/arm/isa/insts/misc.isa2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/arch/arm/isa/insts/misc.isa b/src/arch/arm/isa/insts/misc.isa
index f1c6acff3..ef579bf5a 100644
--- a/src/arch/arm/isa/insts/misc.isa
+++ b/src/arch/arm/isa/insts/misc.isa
@@ -226,7 +226,7 @@ let {{
cpsr.c = CondCodesC;
cpsr.v = CondCodesV;
cpsr.ge = CondCodesGE;
- Dest = cpsr & 0xF8FF03DF
+ Dest = cpsr & (cpsr.mode == MODE_USER ? ApsrMask : CpsrMask);
'''
mrsCpsrIop = InstObjParams("mrs", "MrsCpsr", "MrsOp",