diff options
author | Tiezhu Yang <yangtiezhu@loongson.cn> | 2022-10-12 16:36:19 +0800 |
---|---|---|
committer | Huacai Chen <chenhuacai@loongson.cn> | 2022-10-12 16:36:19 +0800 |
commit | 8a34228eb30308f6e223c6f2b87e2381d45056e2 (patch) | |
tree | 2fbdbf2a1f1287dfb19f3c8ebbe66bdb134ad57c /arch/loongarch/include | |
parent | 4e62d1d86585e1b62b4f96ee586881dd45a443dc (diff) | |
download | lwn-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.h | 10 |
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 */ |