RISC-V: add rd reg parsing to parse_asm header

A patch from »String optimizations and call support in alternatives« in state Mainline for linux-kernel

From: Heiko Stuebner <heiko@...> Date: Thu, 3 Nov 2022 11:45:47 +0100

Commit-Message

Add a macro to allow parsing of the rd register from an instruction. Signed-off-by: Heiko Stuebner <heiko@...>

Patch-Comment

arch/riscv/include/asm/parse_asm.h | 5 +++++ 1 file changed, 5 insertions(+)

Statistics

  • 5 lines added
  • 0 lines removed

Changes

---------------------- arch/riscv/include/asm/parse_asm.h ----------------------
index 939ede0ee527..305b15f7d41c 100644
@@ -51,6 +51,7 @@
#define RVG_RS1_OPOFF 15
#define RVG_RS2_OPOFF 20
#define RVG_RD_OPOFF 7
+#define RVG_RD_MASK GENMASK(4, 0)
/* The bit field of immediate value in RVC J instruction */
#define RVC_J_IMM_SIGN_OPOFF 12
@@ -192,6 +193,10 @@ static inline bool is_ ## INSN_NAME ## _insn(long insn) \
#define RV_X(X, s, mask) (((X) >> (s)) & (mask))
#define RVC_X(X, s, mask) RV_X(X, s, mask)
+#define EXTRACT_RD_REG(x) \
+ ({typeof(x) x_ = (x); \
+ (RV_X(x_, RVG_RD_OPOFF, RVG_RD_MASK)); })
+
#define EXTRACT_UTYPE_IMM(x) \
({typeof(x) x_ = (x); \
(RV_X(x_, U_IMM_31_12_OPOFF, U_IMM_31_12_MASK)); })
 
 

Recent Patches

About Us

Sed lacus. Donec lectus. Nullam pretium nibh ut turpis. Nam bibendum. In nulla tortor, elementum vel, tempor at, varius non, purus. Mauris vitae nisl nec metus placerat consectetuer.

Read More...