Commit 71766b81 authored by Julien Thierry's avatar Julien Thierry Committed by Will Deacon
Browse files

arm64: insn: Add load/store decoding helpers



Provide some function to group different load/store instructions.

Signed-off-by: default avatarJulien Thierry <jthierry@redhat.com>
Link: https://lore.kernel.org/r/20210303170536.1838032-9-jthierry@redhat.com


Signed-off-by: default avatarWill Deacon <will@kernel.org>
parent 54880044
Loading
Loading
Loading
Loading
+28 −0
Original line number Diff line number Diff line
@@ -411,6 +411,34 @@ static inline bool aarch64_insn_is_barrier(u32 insn)
	       aarch64_insn_is_pssbb(insn);
}

static inline bool aarch64_insn_is_store_single(u32 insn)
{
	return aarch64_insn_is_store_imm(insn) ||
	       aarch64_insn_is_store_pre(insn) ||
	       aarch64_insn_is_store_post(insn);
}

static inline bool aarch64_insn_is_store_pair(u32 insn)
{
	return aarch64_insn_is_stp(insn) ||
	       aarch64_insn_is_stp_pre(insn) ||
	       aarch64_insn_is_stp_post(insn);
}

static inline bool aarch64_insn_is_load_single(u32 insn)
{
	return aarch64_insn_is_load_imm(insn) ||
	       aarch64_insn_is_load_pre(insn) ||
	       aarch64_insn_is_load_post(insn);
}

static inline bool aarch64_insn_is_load_pair(u32 insn)
{
	return aarch64_insn_is_ldp(insn) ||
	       aarch64_insn_is_ldp_pre(insn) ||
	       aarch64_insn_is_ldp_post(insn);
}

enum aarch64_insn_encoding_class aarch64_get_insn_class(u32 insn);
bool aarch64_insn_uses_literal(u32 insn);
bool aarch64_insn_is_branch(u32 insn);