target/arm: Enforce alignment for RFE
authorRichard Henderson <richard.henderson@linaro.org>
Mon, 19 Apr 2021 20:22:44 +0000 (13:22 -0700)
committerPeter Maydell <peter.maydell@linaro.org>
Fri, 30 Apr 2021 10:16:51 +0000 (11:16 +0100)
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20210419202257.161730-19-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
target/arm/translate.c

index 9095c4a86f37230d174d2aa27a958264660ba4e1..b8704d2504beb84b5d9ddb8433ddd6889d0634e9 100644 (file)
@@ -8357,10 +8357,10 @@ static bool trans_RFE(DisasContext *s, arg_RFE *a)
 
     /* Load PC into tmp and CPSR into tmp2.  */
     t1 = tcg_temp_new_i32();
-    gen_aa32_ld32u(s, t1, addr, get_mem_index(s));
+    gen_aa32_ld_i32(s, t1, addr, get_mem_index(s), MO_UL | MO_ALIGN);
     tcg_gen_addi_i32(addr, addr, 4);
     t2 = tcg_temp_new_i32();
-    gen_aa32_ld32u(s, t2, addr, get_mem_index(s));
+    gen_aa32_ld_i32(s, t2, addr, get_mem_index(s), MO_UL | MO_ALIGN);
 
     if (a->w) {
         /* Base writeback.  */