summaryrefslogtreecommitdiff
path: root/arch/loongarch/include
diff options
context:
space:
mode:
authorTiezhu Yang <yangtiezhu@loongson.cn>2022-10-12 16:36:19 +0800
committerHuacai Chen <chenhuacai@loongson.cn>2022-10-12 16:36:19 +0800
commit8a34228eb30308f6e223c6f2b87e2381d45056e2 (patch)
tree2fbdbf2a1f1287dfb19f3c8ebbe66bdb134ad57c /arch/loongarch/include
parent4e62d1d86585e1b62b4f96ee586881dd45a443dc (diff)
downloadlwn-8a34228eb30308f6e223c6f2b87e2381d45056e2.tar.gz
lwn-8a34228eb30308f6e223c6f2b87e2381d45056e2.zip
LoongArch: Move {signed,unsigned}_imm_check() to inst.h
{signed,unsigned}_imm_check() will also be used in the bpf jit, so move them from module.c to inst.h, this is preparation for later patches. Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn> Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Diffstat (limited to 'arch/loongarch/include')
-rw-r--r--arch/loongarch/include/asm/inst.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/loongarch/include/asm/inst.h b/arch/loongarch/include/asm/inst.h
index 7b07cbb3188c..7b3750907ad1 100644
--- a/arch/loongarch/include/asm/inst.h
+++ b/arch/loongarch/include/asm/inst.h
@@ -166,4 +166,14 @@ u32 larch_insn_gen_lu32id(enum loongarch_gpr rd, int imm);
u32 larch_insn_gen_lu52id(enum loongarch_gpr rd, enum loongarch_gpr rj, int imm);
u32 larch_insn_gen_jirl(enum loongarch_gpr rd, enum loongarch_gpr rj, unsigned long pc, unsigned long dest);
+static inline bool signed_imm_check(long val, unsigned int bit)
+{
+ return -(1L << (bit - 1)) <= val && val < (1L << (bit - 1));
+}
+
+static inline bool unsigned_imm_check(unsigned long val, unsigned int bit)
+{
+ return val < (1UL << bit);
+}
+
#endif /* _ASM_INST_H */