[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH for-7.1 v6 34/51] target/nios2: Enable unaligned traps for system
From: |
Richard Henderson |
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 |
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
- [PATCH for-7.1 v6 32/51] target/nios2: Introduce dest_gpr, (continued)
- [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
- [PATCH for-7.1 v6 30/51] target/nios2: Support division error exception, Richard Henderson, 2022/03/17
- [PATCH for-7.1 v6 34/51] target/nios2: Enable unaligned traps for system mode,
Richard Henderson <=
- [PATCH for-7.1 v6 35/51] target/nios2: Create gen_jumpr, Richard Henderson, 2022/03/17
- [PATCH for-7.1 v6 36/51] target/nios2: Hoist set of is_jmp into gen_goto_tb, Richard Henderson, 2022/03/17
- [PATCH for-7.1 v6 39/51] target/nios2: Implement Misaligned destination exception, Richard Henderson, 2022/03/17
- [PATCH for-7.1 v6 38/51] target/nios2: Use tcg_gen_lookup_and_goto_ptr, Richard Henderson, 2022/03/17