target/nios2: Remove TARGET_ALIGNED_ONLY
authorRichard Henderson <richard.henderson@linaro.org>
Tue, 2 May 2023 09:38:52 +0000 (10:38 +0100)
committerRichard Henderson <richard.henderson@linaro.org>
Thu, 11 May 2023 08:53:41 +0000 (09:53 +0100)
In gen_ldx/gen_stx, the only two locations for memory operations,
mark the operation as either aligned (softmmu) or unaligned
(user-only, as if emulated by the kernel).

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
configs/targets/nios2-softmmu.mak
target/nios2/translate.c

index 5823fc02c8dffa1ccb6f83a936ba1c02e3c608e8..c99ae3777ebd8f3aa5684d6abedea0131c7133bf 100644 (file)
@@ -1,3 +1,2 @@
 TARGET_ARCH=nios2
-TARGET_ALIGNED_ONLY=y
 TARGET_NEED_FDT=y
index 6610e22236ea64335263d4b37283fc0a6e69420c..a548e16ed57400db1b3d081303ef0fd17b353e33 100644 (file)
@@ -298,6 +298,11 @@ static void gen_ldx(DisasContext *dc, uint32_t code, uint32_t flags)
     TCGv data = dest_gpr(dc, instr.b);
 
     tcg_gen_addi_tl(addr, load_gpr(dc, instr.a), instr.imm16.s);
+#ifdef CONFIG_USER_ONLY
+    flags |= MO_UNALN;
+#else
+    flags |= MO_ALIGN;
+#endif
     tcg_gen_qemu_ld_tl(data, addr, dc->mem_idx, flags);
 }
 
@@ -309,6 +314,11 @@ static void gen_stx(DisasContext *dc, uint32_t code, uint32_t flags)
 
     TCGv addr = tcg_temp_new();
     tcg_gen_addi_tl(addr, load_gpr(dc, instr.a), instr.imm16.s);
+#ifdef CONFIG_USER_ONLY
+    flags |= MO_UNALN;
+#else
+    flags |= MO_ALIGN;
+#endif
     tcg_gen_qemu_st_tl(val, addr, dc->mem_idx, flags);
 }