[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 05/15] target/m68k: Remove retaddr in m68k_interrupt_all
From: |
Richard Henderson |
Subject: |
[PATCH v2 05/15] target/m68k: Remove retaddr in m68k_interrupt_all |
Date: |
Thu, 2 Dec 2021 12:48:50 -0800 |
The only value this variable holds is now env->pc.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/m68k/op_helper.c | 15 ++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)
diff --git a/target/m68k/op_helper.c b/target/m68k/op_helper.c
index 71176eb3d8..afbbb8b4ca 100644
--- a/target/m68k/op_helper.c
+++ b/target/m68k/op_helper.c
@@ -286,12 +286,9 @@ static void m68k_interrupt_all(CPUM68KState *env, int
is_hw)
{
CPUState *cs = env_cpu(env);
uint32_t sp;
- uint32_t retaddr;
uint32_t vector;
uint16_t sr, oldsr;
- retaddr = env->pc;
-
if (!is_hw) {
switch (cs->exception_index) {
case EXCP_RTE:
@@ -384,7 +381,7 @@ static void m68k_interrupt_all(CPUM68KState *env, int is_hw)
sp -= 4;
cpu_stl_mmuidx_ra(env, sp, env->mmu.ar, MMU_KERNEL_IDX, 0);
- do_stack_frame(env, &sp, 7, oldsr, 0, retaddr);
+ do_stack_frame(env, &sp, 7, oldsr, 0, env->pc);
env->mmu.fault = false;
if (qemu_loglevel_mask(CPU_LOG_INT)) {
qemu_log(" "
@@ -394,7 +391,7 @@ static void m68k_interrupt_all(CPUM68KState *env, int is_hw)
break;
case EXCP_ADDRESS:
- do_stack_frame(env, &sp, 2, oldsr, 0, retaddr);
+ do_stack_frame(env, &sp, 2, oldsr, 0, env->pc);
break;
case EXCP_ILLEGAL:
@@ -403,23 +400,23 @@ static void m68k_interrupt_all(CPUM68KState *env, int
is_hw)
case EXCP_TRAPCC:
case EXCP_TRACE:
/* FIXME: addr is not only env->pc */
- do_stack_frame(env, &sp, 2, oldsr, env->pc, retaddr);
+ do_stack_frame(env, &sp, 2, oldsr, env->pc, env->pc);
break;
case EXCP_SPURIOUS ... EXCP_INT_LEVEL_7:
if (is_hw && oldsr & SR_M) {
- do_stack_frame(env, &sp, 0, oldsr, 0, retaddr);
+ do_stack_frame(env, &sp, 0, oldsr, 0, env->pc);
oldsr = sr;
env->aregs[7] = sp;
cpu_m68k_set_sr(env, sr &= ~SR_M);
sp = env->aregs[7] & ~1;
- do_stack_frame(env, &sp, 1, oldsr, 0, retaddr);
+ do_stack_frame(env, &sp, 1, oldsr, 0, env->pc);
break;
}
/* fall through */
default:
- do_stack_frame(env, &sp, 0, oldsr, 0, retaddr);
+ do_stack_frame(env, &sp, 0, oldsr, 0, env->pc);
break;
}
--
2.25.1
- [PATCH v2 02/15] target/m68k: Switch over exception type in m68k_interrupt_all, (continued)
- [PATCH v2 02/15] target/m68k: Switch over exception type in m68k_interrupt_all, Richard Henderson, 2021/12/02
- [PATCH v2 09/15] target/m68k: Implement TRAPcc, Richard Henderson, 2021/12/02
- [PATCH v2 12/15] target/m68k: Fix stack frame for EXCP_ILLEGAL, Richard Henderson, 2021/12/02
- [PATCH v2 14/15] linux-user/strace: Fix print_syscall_err, Richard Henderson, 2021/12/02
- [PATCH v2 13/15] tests/tcg/m68k: Add trap.c, Richard Henderson, 2021/12/02
- [PATCH v2 08/15] target/m68k: Fix address argument for EXCP_TRACE, Richard Henderson, 2021/12/02
- [PATCH v2 05/15] target/m68k: Remove retaddr in m68k_interrupt_all,
Richard Henderson <=
- [PATCH v2 06/15] target/m68k: Fix address argument for EXCP_CHK, Richard Henderson, 2021/12/02
- [PATCH v2 10/15] target/m68k: Implement TRAPV, Richard Henderson, 2021/12/02
- [PATCH v2 15/15] linux-user/strace: Adjust get_thread_area for m68k, Richard Henderson, 2021/12/02
- [PATCH v2 07/15] target/m68k: Fix pc, c flag, and address argument for EXCP_DIV0, Richard Henderson, 2021/12/02