qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH 09/33] target/mips: Introduce generic TRANS_CHECK() for decod


From: Richard Henderson
Subject: Re: [PATCH 09/33] target/mips: Introduce generic TRANS_CHECK() for decodetree helpers
Date: Sat, 23 Oct 2021 18:58:02 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0

On 10/23/21 2:47 PM, Philippe Mathieu-Daudé wrote:
Similar to the TRANS() macro introduced in commit fb3164e412d,
introduce TRANS_CHECK() which takes a boolean expression as
argument.

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
  target/mips/tcg/translate.h | 9 +++++++++
  1 file changed, 9 insertions(+)

diff --git a/target/mips/tcg/translate.h b/target/mips/tcg/translate.h
index 6111493651f..3ef09cc50c9 100644
--- a/target/mips/tcg/translate.h
+++ b/target/mips/tcg/translate.h
@@ -224,6 +224,15 @@ bool decode_ext_vr54xx(DisasContext *ctx, uint32_t insn);
      static bool trans_##NAME(DisasContext *ctx, arg_##NAME *a) \
      { return FUNC(ctx, a, __VA_ARGS__); }
+#define TRANS_CHECK(NAME, CHECK_EXPR, FUNC, ...) \
+    static bool trans_##NAME(DisasContext *ctx, arg_##NAME *a) \
+    { \
+        if (!(CHECK_EXPR)) { \
+            return false; \
+        } \
+        return FUNC(ctx, a, __VA_ARGS__); \
+    }

So... if you're going to do this generically, you may want to adjust check_msa_access. OTOH, perhaps all you want is a more local TRANS_MSA, with the CHECK_EXPR built in.


r~



reply via email to

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