[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 02/15] target/m68k: Switch over exception type in m68k_int
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH v2 02/15] target/m68k: Switch over exception type in m68k_interrupt_all |
Date: |
Fri, 3 Dec 2021 10:02:27 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.3.0 |
On 12/2/21 21:48, Richard Henderson wrote:
> Replace an if ladder with a switch for clarity.
>
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---
> target/m68k/op_helper.c | 45 +++++++++++++++++++++++++----------------
> 1 file changed, 28 insertions(+), 17 deletions(-)
> - } else if (is_hw && oldsr & SR_M &&
> - cs->exception_index >= EXCP_SPURIOUS &&
> - cs->exception_index <= EXCP_INT_LEVEL_7) {
> - do_stack_frame(env, &sp, 0, oldsr, 0, retaddr);
> - 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);
> - } else {
> + break;
> +
> + case EXCP_SPURIOUS ... EXCP_INT_LEVEL_7:
> + if (is_hw && oldsr & SR_M) {
This is code movement, but adding parenthesis would produce
clearer code.
> + do_stack_frame(env, &sp, 0, oldsr, 0, retaddr);
> + oldsr = sr;
> + env->aregs[7] = sp;
> + cpu_m68k_set_sr(env, sr &= ~SR_M);
Similarly code movement; this assignation deserves a followup
cleanup patch...
> + sp = env->aregs[7] & ~1;
> + do_stack_frame(env, &sp, 1, oldsr, 0, retaddr);
> + break;
> + }
> + /* fall through */
> +
> + default:
> do_stack_frame(env, &sp, 0, oldsr, 0, retaddr);
> + break;
> }
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
- [PATCH v2 00/15] target/m68k: Conditional traps + trap cleanup, Richard Henderson, 2021/12/02
- [PATCH v2 01/15] target/m68k: Raise the TRAPn exception with the correct pc, Richard Henderson, 2021/12/02
- [PATCH v2 04/15] linux-user/m68k: Handle EXCP_TRAP1 through EXCP_TRAP15, Richard Henderson, 2021/12/02
- [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, 2021/12/02