[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Stable-8.2.1 35/38] target/hppa: Export function hppa_set_ior_and_isr()
From: |
Michael Tokarev |
Subject: |
[Stable-8.2.1 35/38] target/hppa: Export function hppa_set_ior_and_isr() |
Date: |
Thu, 18 Jan 2024 10:53:02 +0300 |
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>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
(cherry picked from commit 3824e0d643f34ee09e0cc75190c0c4b60928b78c)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
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 1387f4a64b..4fcc612754 100644
--- a/target/hppa/mem_helper.c
+++ b/target/hppa/mem_helper.c
@@ -305,14 +305,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
@@ -339,16 +333,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.39.2
- [Stable-8.2.1 25/38] tests/qtest/virtio-ccw: Fix device presence checking, (continued)
- [Stable-8.2.1 25/38] tests/qtest/virtio-ccw: Fix device presence checking, Michael Tokarev, 2024/01/18
- [Stable-8.2.1 27/38] .gitlab-ci.d/buildtest.yml: Work around htags bug when environment is large, Michael Tokarev, 2024/01/18
- [Stable-8.2.1 28/38] readthodocs: fully specify a build environment, Michael Tokarev, 2024/01/18
- [Stable-8.2.1 29/38] hw/hppa/machine: Allow up to 3840 MB total memory, Michael Tokarev, 2024/01/18
- [Stable-8.2.1 30/38] hw/hppa/machine: Disable default devices with --nodefaults option, Michael Tokarev, 2024/01/18
- [Stable-8.2.1 32/38] target/hppa: Fix PDC address translation on PA2.0 with PSW.W=0, Michael Tokarev, 2024/01/18
- [Stable-8.2.1 31/38] hw/pci-host/astro: Add missing astro & elroy registers for NetBSD, Michael Tokarev, 2024/01/18
- [Stable-8.2.1 33/38] hw/hppa: Move software power button address back into PDC, Michael Tokarev, 2024/01/18
- [Stable-8.2.1 34/38] target/hppa: Avoid accessing %gr0 when raising exception, Michael Tokarev, 2024/01/18
- [Stable-8.2.1 36/38] target/hppa: Fix IOR and ISR on unaligned access trap, Michael Tokarev, 2024/01/18
- [Stable-8.2.1 35/38] target/hppa: Export function hppa_set_ior_and_isr(),
Michael Tokarev <=
- [Stable-8.2.1 37/38] target/hppa: Fix IOR and ISR on error in probe, Michael Tokarev, 2024/01/18
- [Stable-8.2.1 38/38] target/hppa: Update SeaBIOS-hppa to version 15, Michael Tokarev, 2024/01/18