[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 02/11] target-arm: Make arm_current_el() return s
From: |
Peter Maydell |
Subject: |
[Qemu-devel] [PATCH v2 02/11] target-arm: Make arm_current_el() return sensible values for M profile |
Date: |
Thu, 29 Jan 2015 18:55:08 +0000 |
Although M profile doesn't have the same concept of exception level
as A profile, it does have a notion of privileged versus not, which
we currently track in the privmode TB flag. Support returning this
information if arm_current_el() is called on an M profile core, so
that we can identify the correct MMU index to use (and put the MMU
index in the TB flags) without having to special-case M profile.
Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Greg Bellows <address@hidden>
---
target-arm/cpu.h | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/target-arm/cpu.h b/target-arm/cpu.h
index cd7a9e8..3eb00f4 100644
--- a/target-arm/cpu.h
+++ b/target-arm/cpu.h
@@ -1211,6 +1211,10 @@ static inline bool cptype_valid(int cptype)
*/
static inline int arm_current_el(CPUARMState *env)
{
+ if (arm_feature(env, ARM_FEATURE_M)) {
+ return !((env->v7m.exception == 0) && (env->v7m.control & 1));
+ }
+
if (is_a64(env)) {
return extract32(env->pstate, 2, 2);
}
--
1.9.1
- [Qemu-devel] [PATCH v2 00/11] target-arm: handle mmu_idx/translation regimes properly, Peter Maydell, 2015/01/29
- [Qemu-devel] [PATCH v2 06/11] target-arm: Don't define any MMU_MODE*_SUFFIXes, Peter Maydell, 2015/01/29
- [Qemu-devel] [PATCH v2 02/11] target-arm: Make arm_current_el() return sensible values for M profile,
Peter Maydell <=
- [Qemu-devel] [PATCH v2 11/11] target-arm: Fix brace style in reindented code, Peter Maydell, 2015/01/29
- [Qemu-devel] [PATCH v2 10/11] target-arm: Reindent ancient page-table-walk code, Peter Maydell, 2015/01/29
- [Qemu-devel] [PATCH v2 08/11] target-arm: Pass mmu_idx to get_phys_addr(), Peter Maydell, 2015/01/29
- [Qemu-devel] [PATCH v2 01/11] cpu_ldst.h: Allow NB_MMU_MODES to be 7, Peter Maydell, 2015/01/29
- [Qemu-devel] [PATCH v2 03/11] target-arm/translate-a64: Fix wrong mmu_idx usage for LDT/STT, Peter Maydell, 2015/01/29
- [Qemu-devel] [PATCH v2 09/11] target-arm: Use mmu_idx in get_phys_addr(), Peter Maydell, 2015/01/29