From: Richard Henderson <richard.henderson@linaro.org>
To: qemu-devel@nongnu.org
Cc: marex@denx.de, amir.gonnen@neuroblade.ai
Subject: [PATCH for-7.1 v6 34/51] target/nios2: Enable unaligned traps for system mode
Date: Wed, 16 Mar 2022 22:05:21 -0700 [thread overview]
Message-ID: <20220317050538.924111-35-richard.henderson@linaro.org> (raw)
In-Reply-To: <20220317050538.924111-1-richard.henderson@linaro.org>
Unaligned traps are optional, but required with an mmu.
Turn them on always, because the fallback behaviour is not
documented (though presumably it discards low bits).
Enable alignment checks in the config file.
Unwind the guest pc properly from do_unaligned_access.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/nios2/helper.c | 4 ++--
configs/targets/nios2-softmmu.mak | 1 +
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/target/nios2/helper.c b/target/nios2/helper.c
index 460032adc0..bf40cff779 100644
--- a/target/nios2/helper.c
+++ b/target/nios2/helper.c
@@ -264,8 +264,8 @@ void nios2_cpu_do_unaligned_access(CPUState *cs, vaddr addr,
CPUNios2State *env = &cpu->env;
env->ctrl[CR_BADADDR] = addr;
- env->ctrl[CR_EXCEPTION] = FIELD_DP32(0, CR_EXCEPTION, CAUSE, EXCP_UNALIGN);
- helper_raise_exception(env, EXCP_UNALIGN);
+ cs->exception_index = EXCP_UNALIGN;
+ cpu_loop_exit_restore(cs, retaddr);
}
bool nios2_cpu_tlb_fill(CPUState *cs, vaddr address, int size,
diff --git a/configs/targets/nios2-softmmu.mak b/configs/targets/nios2-softmmu.mak
index 9a372f0717..1e93b54cd1 100644
--- a/configs/targets/nios2-softmmu.mak
+++ b/configs/targets/nios2-softmmu.mak
@@ -1 +1,2 @@
TARGET_ARCH=nios2
+TARGET_ALIGNED_ONLY=y
--
2.25.1
next prev parent reply other threads:[~2022-03-17 5:34 UTC|newest]
Thread overview: 80+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-17 5:04 [PATCH for-7.1 v6 00/51] target/nios2: Shadow register set, EIC and VIC Richard Henderson
2022-03-17 5:04 ` [PATCH for-7.1 v6 01/51] tcg: Fix indirect lowering vs TCG_OPF_COND_BRANCH Richard Henderson
2022-03-17 13:38 ` Peter Maydell
2022-03-17 5:04 ` [PATCH for-7.1 v6 02/51] target/nios2: Check supervisor on eret Richard Henderson
2022-03-17 5:04 ` [PATCH for-7.1 v6 03/51] target/nios2: Stop generating code if gen_check_supervisor fails Richard Henderson
2022-03-17 5:04 ` [PATCH for-7.1 v6 04/51] target/nios2: Add NUM_GP_REGS and NUM_CP_REGS Richard Henderson
2022-03-17 5:04 ` [PATCH for-7.1 v6 05/51] target/nios2: Split PC out of env->regs[] Richard Henderson
2022-03-17 5:04 ` [PATCH for-7.1 v6 06/51] target/nios2: Split out helper for eret instruction Richard Henderson
2022-03-17 5:04 ` [PATCH for-7.1 v6 07/51] target/nios2: Fix BRET instruction Richard Henderson
2022-03-17 5:04 ` [PATCH for-7.1 v6 08/51] target/nios2: Do not create TCGv for control registers Richard Henderson
2022-03-17 5:04 ` [PATCH for-7.1 v6 09/51] linux-user/nios2: Only initialize SP and PC in target_cpu_copy_regs Richard Henderson
2022-03-17 5:04 ` [PATCH for-7.1 v6 10/51] target/nios2: Remove cpu_interrupts_enabled Richard Henderson
2022-03-17 5:04 ` [PATCH for-7.1 v6 11/51] target/nios2: Split control registers away from general registers Richard Henderson
2022-03-17 5:04 ` [PATCH for-7.1 v6 12/51] target/nios2: Clean up nios2_cpu_dump_state Richard Henderson
2022-03-17 5:05 ` [PATCH for-7.1 v6 13/51] target/nios2: Use hw/registerfields.h for CR_STATUS fields Richard Henderson
2022-03-17 15:13 ` Peter Maydell
2022-03-17 5:05 ` [PATCH for-7.1 v6 14/51] target/nios2: Use hw/registerfields.h for CR_EXCEPTION fields Richard Henderson
2022-03-17 5:05 ` [PATCH for-7.1 v6 15/51] target/nios2: Use hw/registerfields.h for CR_TLBADDR fields Richard Henderson
2022-03-17 5:05 ` [PATCH for-7.1 v6 16/51] target/nios2: Use hw/registerfields.h for CR_TLBACC fields Richard Henderson
2022-03-17 5:05 ` [PATCH for-7.1 v6 17/51] target/nios2: Rename CR_TLBMISC_WR to CR_TLBMISC_WE Richard Henderson
2022-03-17 5:05 ` [PATCH for-7.1 v6 18/51] target/nios2: Use hw/registerfields.h for CR_TLBMISC fields Richard Henderson
2022-03-17 15:15 ` Peter Maydell
2022-03-17 5:05 ` [PATCH for-7.1 v6 19/51] target/nios2: Move R_FOO and CR_BAR into enumerations Richard Henderson
2022-03-17 5:05 ` [PATCH for-7.1 v6 20/51] target/nios2: Create EXCP_SEMIHOST for semi-hosting Richard Henderson
2022-03-17 5:05 ` [PATCH for-7.1 v6 21/51] target/nios2: Clean up nios2_cpu_do_interrupt Richard Henderson
2022-03-17 15:24 ` Peter Maydell
2022-03-17 5:05 ` [PATCH for-7.1 v6 22/51] target/nios2: Hoist CPU_LOG_INT logging Richard Henderson
2022-03-17 15:25 ` Peter Maydell
2022-03-17 5:05 ` [PATCH for-7.1 v6 23/51] target/nios2: Handle EXCP_UNALIGN and EXCP_UALIGND Richard Henderson
2022-03-17 15:27 ` Peter Maydell
2022-03-17 16:47 ` Richard Henderson
2022-03-17 5:05 ` [PATCH for-7.1 v6 24/51] target/nios2: Cleanup set of CR_EXCEPTION for do_interrupt Richard Henderson
2022-03-17 15:28 ` Peter Maydell
2022-03-17 5:05 ` [PATCH for-7.1 v6 25/51] target/nios2: Clean up handling of tlbmisc in do_exception Richard Henderson
2022-03-17 15:41 ` Peter Maydell
2022-03-17 17:01 ` Richard Henderson
2022-03-17 5:05 ` [PATCH for-7.1 v6 26/51] target/nios2: Prevent writes to read-only or reserved control fields Richard Henderson
2022-03-17 15:49 ` Peter Maydell
2022-03-17 17:16 ` Richard Henderson
2022-03-17 5:05 ` [PATCH for-7.1 v6 27/51] target/nios2: Implement cpuid Richard Henderson
2022-03-17 5:05 ` [PATCH for-7.1 v6 28/51] target/nios2: Implement CR_STATUS.RSIE Richard Henderson
2022-03-17 5:05 ` [PATCH for-7.1 v6 29/51] target/nios2: Remove CPU_INTERRUPT_NMI Richard Henderson
2022-03-17 5:05 ` [PATCH for-7.1 v6 30/51] target/nios2: Support division error exception Richard Henderson
2022-03-17 15:52 ` Peter Maydell
2022-03-17 5:05 ` [PATCH for-7.1 v6 31/51] target/nios2: Use tcg_constant_tl Richard Henderson
2022-03-17 5:05 ` [PATCH for-7.1 v6 32/51] target/nios2: Introduce dest_gpr Richard Henderson
2022-03-17 5:05 ` [PATCH for-7.1 v6 33/51] target/nios2: Drop CR_STATUS_EH from tb->flags Richard Henderson
2022-03-17 5:05 ` Richard Henderson [this message]
2022-03-17 16:06 ` [PATCH for-7.1 v6 34/51] target/nios2: Enable unaligned traps for system mode Peter Maydell
2022-03-17 5:05 ` [PATCH for-7.1 v6 35/51] target/nios2: Create gen_jumpr Richard Henderson
2022-03-17 16:24 ` Peter Maydell
2022-03-17 5:05 ` [PATCH for-7.1 v6 36/51] target/nios2: Hoist set of is_jmp into gen_goto_tb Richard Henderson
2022-03-17 16:25 ` Peter Maydell
2022-03-17 5:05 ` [PATCH for-7.1 v6 37/51] target/nios2: Use gen_goto_tb for DISAS_TOO_MANY Richard Henderson
2022-03-17 16:28 ` Peter Maydell
2022-03-17 5:05 ` [PATCH for-7.1 v6 38/51] target/nios2: Use tcg_gen_lookup_and_goto_ptr Richard Henderson
2022-03-17 16:29 ` Peter Maydell
2022-03-17 5:05 ` [PATCH for-7.1 v6 39/51] target/nios2: Implement Misaligned destination exception Richard Henderson
2022-03-17 16:37 ` Peter Maydell
2022-03-17 17:41 ` Richard Henderson
2022-03-17 5:05 ` [PATCH for-7.1 v6 40/51] linux-user/nios2: Handle various SIGILL exceptions Richard Henderson
2022-03-17 16:38 ` Peter Maydell
2022-03-17 5:05 ` [PATCH for-7.1 v6 41/51] target/nios2: Introduce shadow register sets Richard Henderson
2022-03-17 18:33 ` Peter Maydell
2022-03-17 19:31 ` Richard Henderson
2022-03-17 5:05 ` [PATCH for-7.1 v6 42/51] target/nios2: Implement rdprs, wrprs Richard Henderson
2022-03-17 18:47 ` Peter Maydell
2022-03-17 5:05 ` [PATCH for-7.1 v6 43/51] target/nios2: Update helper_eret for shadow registers Richard Henderson
2022-03-17 18:53 ` Peter Maydell
2022-03-17 5:05 ` [PATCH for-7.1 v6 44/51] target/nios2: Implement EIC interrupt processing Richard Henderson
2022-03-17 19:11 ` Peter Maydell
2022-03-17 19:54 ` Richard Henderson
2022-03-17 5:05 ` [PATCH for-7.1 v6 45/51] hw/intc: Vectored Interrupt Controller (VIC) Richard Henderson
2022-03-17 5:05 ` [PATCH for-7.1 v6 46/51] hw/nios2: Introduce Nios2MachineState Richard Henderson
2022-03-17 5:05 ` [PATCH for-7.1 v6 47/51] hw/nios2: Move memory regions into Nios2Machine Richard Henderson
2022-03-17 5:05 ` [PATCH for-7.1 v6 48/51] hw/nios2: Machine with a Vectored Interrupt Controller Richard Henderson
2022-03-17 5:05 ` [PATCH for-7.1 v6 49/51] tests/tcg: Expose AR to test build environment if needed Richard Henderson
2022-03-17 5:05 ` [PATCH for-7.1 v6 50/51] test/tcg/nios2: Add semihosting multiarch tests Richard Henderson
2022-03-17 5:05 ` [PATCH for-7.1 v6 51/51] tests/tcg/nios2: Add test-shadow-1 Richard Henderson
2022-03-22 12:17 ` [PATCH for-7.1 v6 00/51] target/nios2: Shadow register set, EIC and VIC Amir Gonnen
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=20220317050538.924111-35-richard.henderson@linaro.org \
--to=richard.henderson@linaro.org \
--cc=amir.gonnen@neuroblade.ai \
--cc=marex@denx.de \
--cc=qemu-devel@nongnu.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).