[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 08/36] target-arm: Move get/set_r13_banked() to op_he
From: |
Peter Maydell |
Subject: |
[Qemu-devel] [PULL 08/36] target-arm: Move get/set_r13_banked() to op_helper.c |
Date: |
Thu, 18 Feb 2016 14:34:40 +0000 |
Move get/set_r13_banked() from helper.c to op_helper.c. This will
let us add exception-raising code to them, and also puts them
in the same file as get/set_user_reg(), which makes some conceptual
sense.
(The original reason for the helper.c/op_helper.c split was that
only op_helper.c had access to the CPU env pointer; this distinction
has not been true for a long time, though, and so the split is
now rather arbitrary.)
Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Sergey Fedorov <address@hidden>
Reviewed-by: Edgar E. Iglesias <address@hidden>
---
target-arm/helper.c | 33 ---------------------------------
target-arm/op_helper.c | 37 +++++++++++++++++++++++++++++++++++++
2 files changed, 37 insertions(+), 33 deletions(-)
diff --git a/target-arm/helper.c b/target-arm/helper.c
index bb913c6..c46e3d0 100644
--- a/target-arm/helper.c
+++ b/target-arm/helper.c
@@ -5365,21 +5365,6 @@ void switch_mode(CPUARMState *env, int mode)
}
}
-void HELPER(set_r13_banked)(CPUARMState *env, uint32_t mode, uint32_t val)
-{
- ARMCPU *cpu = arm_env_get_cpu(env);
-
- cpu_abort(CPU(cpu), "banked r13 write\n");
-}
-
-uint32_t HELPER(get_r13_banked)(CPUARMState *env, uint32_t mode)
-{
- ARMCPU *cpu = arm_env_get_cpu(env);
-
- cpu_abort(CPU(cpu), "banked r13 read\n");
- return 0;
-}
-
uint32_t arm_phys_excp_target_el(CPUState *cs, uint32_t excp_idx,
uint32_t cur_el, bool secure)
{
@@ -7762,24 +7747,6 @@ hwaddr arm_cpu_get_phys_page_attrs_debug(CPUState *cs,
vaddr addr,
return phys_addr;
}
-void HELPER(set_r13_banked)(CPUARMState *env, uint32_t mode, uint32_t val)
-{
- if ((env->uncached_cpsr & CPSR_M) == mode) {
- env->regs[13] = val;
- } else {
- env->banked_r13[bank_number(mode)] = val;
- }
-}
-
-uint32_t HELPER(get_r13_banked)(CPUARMState *env, uint32_t mode)
-{
- if ((env->uncached_cpsr & CPSR_M) == mode) {
- return env->regs[13];
- } else {
- return env->banked_r13[bank_number(mode)];
- }
-}
-
uint32_t HELPER(v7m_mrs)(CPUARMState *env, uint32_t reg)
{
ARMCPU *cpu = arm_env_get_cpu(env);
diff --git a/target-arm/op_helper.c b/target-arm/op_helper.c
index 049b521..053e9b6 100644
--- a/target-arm/op_helper.c
+++ b/target-arm/op_helper.c
@@ -457,6 +457,43 @@ void HELPER(set_user_reg)(CPUARMState *env, uint32_t
regno, uint32_t val)
}
}
+#if defined(CONFIG_USER_ONLY)
+void HELPER(set_r13_banked)(CPUARMState *env, uint32_t mode, uint32_t val)
+{
+ ARMCPU *cpu = arm_env_get_cpu(env);
+
+ cpu_abort(CPU(cpu), "banked r13 write\n");
+}
+
+uint32_t HELPER(get_r13_banked)(CPUARMState *env, uint32_t mode)
+{
+ ARMCPU *cpu = arm_env_get_cpu(env);
+
+ cpu_abort(CPU(cpu), "banked r13 read\n");
+ return 0;
+}
+
+#else
+
+void HELPER(set_r13_banked)(CPUARMState *env, uint32_t mode, uint32_t val)
+{
+ if ((env->uncached_cpsr & CPSR_M) == mode) {
+ env->regs[13] = val;
+ } else {
+ env->banked_r13[bank_number(mode)] = val;
+ }
+}
+
+uint32_t HELPER(get_r13_banked)(CPUARMState *env, uint32_t mode)
+{
+ if ((env->uncached_cpsr & CPSR_M) == mode) {
+ return env->regs[13];
+ } else {
+ return env->banked_r13[bank_number(mode)];
+ }
+}
+#endif
+
void HELPER(access_check_cp_reg)(CPUARMState *env, void *rip, uint32_t
syndrome,
uint32_t isread)
{
--
1.9.1
- [Qemu-devel] [PULL 06/36] target-arm: Report correct syndrome for FPEXC32_EL2 traps, (continued)
- [Qemu-devel] [PULL 06/36] target-arm: Report correct syndrome for FPEXC32_EL2 traps, Peter Maydell, 2016/02/18
- [Qemu-devel] [PULL 22/36] sdhci_sysbus: Create SD card device in users, not the device itself, Peter Maydell, 2016/02/18
- [Qemu-devel] [PULL 21/36] hw/sd/sdhci.c: Update to use SDBus APIs, Peter Maydell, 2016/02/18
- [Qemu-devel] [PULL 20/36] hw/sd: Add QOM bus which SD cards plug in to, Peter Maydell, 2016/02/18
- [Qemu-devel] [PULL 30/36] hw/timer: QOM'ify arm_timer (pass 1), Peter Maydell, 2016/02/18
- [Qemu-devel] [PULL 19/36] hw/sd/sd.c: Convert sd_reset() function into Device reset method, Peter Maydell, 2016/02/18
- [Qemu-devel] [PULL 07/36] target-arm: Clean up trap/undef handling of SRS, Peter Maydell, 2016/02/18
- [Qemu-devel] [PULL 09/36] target-arm: Move bank_number() into internals.h, Peter Maydell, 2016/02/18
- [Qemu-devel] [PULL 17/36] hw/sd/sdhci.c: Remove x-drive property, Peter Maydell, 2016/02/18
- [Qemu-devel] [PULL 02/36] target-arm: Fix handling of SCR.SMD, Peter Maydell, 2016/02/18
- [Qemu-devel] [PULL 08/36] target-arm: Move get/set_r13_banked() to op_helper.c,
Peter Maydell <=
- [Qemu-devel] [PULL 14/36] target-arm: Add PMUSERENR_EL0 register, Peter Maydell, 2016/02/18
- [Qemu-devel] [PULL 05/36] target-arm: Implement MDCR_EL3.TDA and MDCR_EL2.TDA traps, Peter Maydell, 2016/02/18
- [Qemu-devel] [PULL 24/36] hw/sd/pxa2xx_mmci: Update to use new SDBus APIs, Peter Maydell, 2016/02/18
- [Qemu-devel] [PULL 28/36] hw/sd: model a power-up delay, as a workaround for an EDK2 bug, Peter Maydell, 2016/02/18
- [Qemu-devel] [PULL 16/36] ARM: PL061: Cleaning field of PL061 device state, Peter Maydell, 2016/02/18
- [Qemu-devel] [PULL 23/36] hw/sd/pxa2xx_mmci: convert to SysBusDevice object, Peter Maydell, 2016/02/18
- Re: [Qemu-devel] [PULL 00/36] target-arm queue, Peter Maydell, 2016/02/18
- [Qemu-devel] [PULL 00/36] target-arm queue, Peter Maydell, 2016/02/18