arm64: insn: Add load/store decoding helpers

Provide some function to group different load/store instructions.

Signed-off-by: Julien Thierry <jthierry@redhat.com>
Link: https://lore.kernel.org/r/20210303170536.1838032-9-jthierry@redhat.com
Signed-off-by: Will Deacon <will@kernel.org>
This commit is contained in:
Julien Thierry 2021-03-03 18:05:36 +01:00 коммит произвёл Will Deacon
Родитель 54880044c6
Коммит 71766b81de
1 изменённых файлов: 28 добавлений и 0 удалений

Просмотреть файл

@ -411,6 +411,34 @@ static inline bool aarch64_insn_is_barrier(u32 insn)
aarch64_insn_is_pssbb(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); enum aarch64_insn_encoding_class aarch64_get_insn_class(u32 insn);
bool aarch64_insn_uses_literal(u32 insn); bool aarch64_insn_uses_literal(u32 insn);
bool aarch64_insn_is_branch(u32 insn); bool aarch64_insn_is_branch(u32 insn);