summaryrefslogtreecommitdiff
path: root/target/hppa/op_helper.c
diff options
context:
space:
mode:
authorHelge Deller <deller@gmx.de>2017-10-01 22:11:45 +0200
committerRichard Henderson <richard.henderson@linaro.org>2018-01-30 10:08:18 -0800
commit813dff13bf2c6bbf3588dfd00de75f6ed07901aa (patch)
tree5123acb4afbbcaab20e47e44dd68fd9d6b3f4b7d /target/hppa/op_helper.c
parent6521130b0a7f699fdb82446d57df5627bfa7ed3c (diff)
downloadqemu-813dff13bf2c6bbf3588dfd00de75f6ed07901aa.tar.gz
target/hppa: Skeleton support for hppa-softmmu
With the addition of default-configs/hppa-softmmu.mak, this will compile. It is not enabled with this patch, however. Signed-off-by: Helge Deller <deller@gmx.de> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'target/hppa/op_helper.c')
-rw-r--r--target/hppa/op_helper.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/target/hppa/op_helper.c b/target/hppa/op_helper.c
index fdbf64ae3c..9076ee998d 100644
--- a/target/hppa/op_helper.c
+++ b/target/hppa/op_helper.c
@@ -58,9 +58,9 @@ void HELPER(tcond)(CPUHPPAState *env, target_ulong cond)
static void atomic_store_3(CPUHPPAState *env, target_ulong addr, uint32_t val,
uint32_t mask, uintptr_t ra)
{
+#ifdef CONFIG_USER_ONLY
uint32_t old, new, cmp;
-#ifdef CONFIG_USER_ONLY
uint32_t *haddr = g2h(addr - 1);
old = *haddr;
while (1) {
@@ -72,7 +72,8 @@ static void atomic_store_3(CPUHPPAState *env, target_ulong addr, uint32_t val,
old = cmp;
}
#else
-#error "Not implemented."
+ /* FIXME -- we can do better. */
+ cpu_loop_exit_atomic(ENV_GET_CPU(env), ra);
#endif
}
@@ -158,12 +159,20 @@ void HELPER(stby_e_parallel)(CPUHPPAState *env, target_ulong addr,
target_ulong HELPER(probe_r)(target_ulong addr)
{
+#ifdef CONFIG_USER_ONLY
return page_check_range(addr, 1, PAGE_READ);
+#else
+ return 1; /* FIXME */
+#endif
}
target_ulong HELPER(probe_w)(target_ulong addr)
{
+#ifdef CONFIG_USER_ONLY
return page_check_range(addr, 1, PAGE_WRITE);
+#else
+ return 1; /* FIXME */
+#endif
}
void HELPER(loaded_fr0)(CPUHPPAState *env)