From: deller@kernel.org
To: qemu-devel@nongnu.org
Cc: Richard Henderson <richard.henderson@linaro.org>,
Helge Deller <deller@gmx.de>
Subject: [PATCH v3 7/9] target/hppa: Export function hppa_set_ior_and_isr()
Date: Fri, 12 Jan 2024 11:29:25 +0100 [thread overview]
Message-ID: <20240112102927.35406-8-deller@kernel.org> (raw)
In-Reply-To: <20240112102927.35406-1-deller@kernel.org>
From: Helge Deller <deller@gmx.de>
Move functionality to set IOR and ISR on fault into own
function. This will be used by follow-up patches.
Signed-off-by: Helge Deller <deller@gmx.de>
---
target/hppa/cpu.h | 1 +
target/hppa/mem_helper.c | 23 ++++++++++++-----------
2 files changed, 13 insertions(+), 11 deletions(-)
diff --git a/target/hppa/cpu.h b/target/hppa/cpu.h
index 8be45c69c9..9556e95fab 100644
--- a/target/hppa/cpu.h
+++ b/target/hppa/cpu.h
@@ -385,6 +385,7 @@ void hppa_cpu_dump_state(CPUState *cs, FILE *f, int);
#ifndef CONFIG_USER_ONLY
void hppa_ptlbe(CPUHPPAState *env);
hwaddr hppa_cpu_get_phys_page_debug(CPUState *cs, vaddr addr);
+void hppa_set_ior_and_isr(CPUHPPAState *env, vaddr addr, bool mmu_disabled);
bool hppa_cpu_tlb_fill(CPUState *cs, vaddr address, int size,
MMUAccessType access_type, int mmu_idx,
bool probe, uintptr_t retaddr);
diff --git a/target/hppa/mem_helper.c b/target/hppa/mem_helper.c
index 42bd0063c0..7f54160e4c 100644
--- a/target/hppa/mem_helper.c
+++ b/target/hppa/mem_helper.c
@@ -299,14 +299,8 @@ hwaddr hppa_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
return excp == EXCP_DTLB_MISS ? -1 : phys;
}
-G_NORETURN static void
-raise_exception_with_ior(CPUHPPAState *env, int excp, uintptr_t retaddr,
- vaddr addr, bool mmu_disabled)
+void hppa_set_ior_and_isr(CPUHPPAState *env, vaddr addr, bool mmu_disabled)
{
- CPUState *cs = env_cpu(env);
-
- cs->exception_index = excp;
-
if (env->psw & PSW_Q) {
/*
* For pa1.x, the offset and space never overlap, and so we
@@ -333,16 +327,23 @@ raise_exception_with_ior(CPUHPPAState *env, int excp, uintptr_t retaddr,
*/
uint64_t b;
- cpu_restore_state(cs, retaddr);
-
b = env->unwind_breg ? env->gr[env->unwind_breg] : 0;
b >>= (env->psw & PSW_W ? 62 : 30);
env->cr[CR_IOR] |= b << 62;
-
- cpu_loop_exit(cs);
}
}
}
+}
+
+G_NORETURN static void
+raise_exception_with_ior(CPUHPPAState *env, int excp, uintptr_t retaddr,
+ vaddr addr, bool mmu_disabled)
+{
+ CPUState *cs = env_cpu(env);
+
+ cs->exception_index = excp;
+ hppa_set_ior_and_isr(env, addr, mmu_disabled);
+
cpu_loop_exit_restore(cs, retaddr);
}
--
2.43.0
next prev parent reply other threads:[~2024-01-12 10:30 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-12 10:29 [PATCH v3 0/9] target/hppa qemu v8.2 regression fixes deller
2024-01-12 10:29 ` [PATCH v3 1/9] hw/hppa/machine: Allow up to 3840 MB total memory deller
2024-01-12 10:29 ` [PATCH v3 2/9] hw/hppa/machine: Disable default devices with --nodefaults option deller
2024-01-12 20:39 ` Richard Henderson
2024-01-26 12:02 ` David Woodhouse
2024-01-26 14:49 ` Helge Deller
2024-01-26 14:51 ` David Woodhouse
2024-01-12 10:29 ` [PATCH v3 3/9] hw/pci-host/astro: Add missing astro & elroy registers for NetBSD deller
2024-01-12 10:29 ` [PATCH v3 4/9] target/hppa: Fix PDC address translation on PA2.0 with PSW.W=0 deller
2024-01-12 21:54 ` Richard Henderson
2024-01-12 22:23 ` Helge Deller
2024-01-12 22:24 ` Richard Henderson
2024-01-12 10:29 ` [PATCH v3 5/9] hw/hppa: Move software power button address back into PDC deller
2024-01-12 22:07 ` Richard Henderson
2024-01-12 22:44 ` Helge Deller
2024-01-12 23:11 ` Richard Henderson
2024-01-12 23:15 ` Helge Deller
2024-01-12 23:27 ` Richard Henderson
2024-01-12 10:29 ` [PATCH v3 6/9] target/hppa: Avoid accessing %gr0 when raising exception deller
2024-01-12 10:29 ` deller [this message]
2024-01-12 22:08 ` [PATCH v3 7/9] target/hppa: Export function hppa_set_ior_and_isr() Richard Henderson
2024-01-12 10:29 ` [PATCH v3 8/9] target/hppa: Fix IOR and ISR on unaligned access trap deller
2024-01-12 22:08 ` Richard Henderson
2024-01-12 10:29 ` [PATCH v3 9/9] target/hppa: Fix IOR and ISR on error in probe deller
2024-01-12 22:08 ` Richard Henderson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240112102927.35406-8-deller@kernel.org \
--to=deller@kernel.org \
--cc=deller@gmx.de \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.