|
| From: | Richard Henderson |
| Subject: | Re: [PATCH v2 4/9] target/riscv: Remove the hardcoded MSTATUS_SD macro |
| Date: | Tue, 13 Apr 2021 20:13:36 -0700 |
| User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 |
On 4/13/21 4:33 PM, Alistair Francis wrote:
+#ifndef CONFIG_USER_ONLY
+# ifdef TARGET_RISCV32
+# define is_32bit(ctx) true
+# else
+static inline bool is_32bit(DisasContext *ctx)
+{
+ return !(ctx->misa & RV64);
+}
+# endif
+#endif
It's going to be soon enough when this is used by user-only too. I'd structure this as #ifdef TARGET_RISCV32 # define is_32bit(ctx) true #elif defined(CONFIG_USER_ONLY) # define is_32bit(ctx) false #else static inline... #endif
tmp = tcg_temp_new();
+ sd = is_32bit(ctx) ? MSTATUS32_SD : MSTATUS64_SD;
+
+
tcg_gen_ld_tl(tmp, cpu_env, offsetof(CPURISCVState, mstatus));
Careful with the extra whitespace. Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~
| [Prev in Thread] | Current Thread | [Next in Thread] |