]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
arm64: insn: Add load/store decoding helpers
authorJulien Thierry <jthierry@redhat.com>
Wed, 3 Mar 2021 17:05:36 +0000 (18:05 +0100)
committerWill Deacon <will@kernel.org>
Thu, 27 May 2021 16:54:20 +0000 (17:54 +0100)
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>
arch/arm64/include/asm/insn.h

index ac8f47ff7b18bd83615476d6b20c9e6d674fd9b1..1ea9611545bb496d3f464fa025c5b25912c176bd 100644 (file)
@@ -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);