[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH for-7.1 v6 24/51] target/nios2: Cleanup set of CR_EXCEPTION f
|
From: |
Peter Maydell |
|
Subject: |
Re: [PATCH for-7.1 v6 24/51] target/nios2: Cleanup set of CR_EXCEPTION for do_interrupt |
|
Date: |
Thu, 17 Mar 2022 15:28:35 +0000 |
On Thu, 17 Mar 2022 at 05:51, Richard Henderson
<richard.henderson@linaro.org> wrote:
>
> The register is entirely read-only for software, and we do not
> implement ECC, so we need not deposit the cause into an existing
> value; just create a new value from scratch.
>
> Furthermore, exception.CAUSE is not written for break exceptions.
>
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---
> target/nios2/helper.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/target/nios2/helper.c b/target/nios2/helper.c
> index 0392c0ea84..afbafd1fdc 100644
> --- a/target/nios2/helper.c
> +++ b/target/nios2/helper.c
> @@ -74,9 +74,10 @@ static void do_exception(Nios2CPU *cpu, uint32_t
> exception_addr, bool is_break)
> new_status &= ~(CR_STATUS_PIE | CR_STATUS_U);
>
> env->ctrl[CR_STATUS] = new_status;
> - env->ctrl[CR_EXCEPTION] = FIELD_DP32(env->ctrl[CR_EXCEPTION],
> - CR_EXCEPTION, CAUSE,
> - cs->exception_index);
> + if (!is_break) {
> + env->ctrl[CR_EXCEPTION] = FIELD_DP32(0, CR_EXCEPTION, CAUSE,
> + cs->exception_index);
> + }
> env->pc = exception_addr;
> }
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
thanks
-- PMM
- [PATCH for-7.1 v6 21/51] target/nios2: Clean up nios2_cpu_do_interrupt, (continued)
- [PATCH for-7.1 v6 21/51] target/nios2: Clean up nios2_cpu_do_interrupt, Richard Henderson, 2022/03/17
- [PATCH for-7.1 v6 23/51] target/nios2: Handle EXCP_UNALIGN and EXCP_UALIGND, Richard Henderson, 2022/03/17
- [PATCH for-7.1 v6 25/51] target/nios2: Clean up handling of tlbmisc in do_exception, Richard Henderson, 2022/03/17
- [PATCH for-7.1 v6 29/51] target/nios2: Remove CPU_INTERRUPT_NMI, Richard Henderson, 2022/03/17
- [PATCH for-7.1 v6 24/51] target/nios2: Cleanup set of CR_EXCEPTION for do_interrupt, Richard Henderson, 2022/03/17
- Re: [PATCH for-7.1 v6 24/51] target/nios2: Cleanup set of CR_EXCEPTION for do_interrupt,
Peter Maydell <=
- [PATCH for-7.1 v6 27/51] target/nios2: Implement cpuid, Richard Henderson, 2022/03/17
- [PATCH for-7.1 v6 31/51] target/nios2: Use tcg_constant_tl, Richard Henderson, 2022/03/17
- [PATCH for-7.1 v6 32/51] target/nios2: Introduce dest_gpr, Richard Henderson, 2022/03/17
- [PATCH for-7.1 v6 37/51] target/nios2: Use gen_goto_tb for DISAS_TOO_MANY, Richard Henderson, 2022/03/17
- [PATCH for-7.1 v6 26/51] target/nios2: Prevent writes to read-only or reserved control fields, Richard Henderson, 2022/03/17
- [PATCH for-7.1 v6 33/51] target/nios2: Drop CR_STATUS_EH from tb->flags, Richard Henderson, 2022/03/17
- [PATCH for-7.1 v6 28/51] target/nios2: Implement CR_STATUS.RSIE, Richard Henderson, 2022/03/17