qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v4 01/11] target/loongarch: Add macro to check current arch


From: Richard Henderson
Subject: Re: [PATCH v4 01/11] target/loongarch: Add macro to check current arch
Date: Tue, 8 Aug 2023 10:01:51 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0

On 8/7/23 18:54, Jiajie Chen wrote:
Add macro to check if the current cpucfg[1].arch equals to 1(LA32) or
2(LA64).

Signed-off-by: Jiajie Chen <c@jia.je>
---
  target/loongarch/cpu.h | 7 +++++++
  1 file changed, 7 insertions(+)

diff --git a/target/loongarch/cpu.h b/target/loongarch/cpu.h
index fa371ca8ba..bf0da8d5b4 100644
--- a/target/loongarch/cpu.h
+++ b/target/loongarch/cpu.h
@@ -132,6 +132,13 @@ FIELD(CPUCFG1, HP, 24, 1)
  FIELD(CPUCFG1, IOCSR_BRD, 25, 1)
  FIELD(CPUCFG1, MSG_INT, 26, 1)
+/* cpucfg[1].arch */
+#define CPUCFG1_ARCH_LA32        1
+#define CPUCFG1_ARCH_LA64        2
+
+#define LOONGARCH_CPUCFG_ARCH(env, mode) \
+  (FIELD_EX32(env->cpucfg[1], CPUCFG1, ARCH) == CPUCFG1_ARCH_##mode)

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

But in using this recall that 0 is a defined value for "simplified la32", so

   !LOONGARCH_CPUCFG_ARCH(env, LA64)

may not in future equal

   LOONGARCH_CPUCFG_ARCH(env, LA32)

it someone ever decides to implement this simplified version. (We emulate very small embedded Arm cpus, so it's not out of the question that you may want to emulate the very smallest LoongArch cpus.)

It might be easier to just define

static inline bool is_la64(CPULoongArch64 *env)
{
    return FIELD_EX32(env->cpucfg[1], CPUCFG1, ARCH) == CPUCFG1_ARCH_LA64;
}


r~



reply via email to

[Prev in Thread] Current Thread [Next in Thread]