]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - arch/arm64/include/asm/insn.h
arm64/insn: add support for emitting ADR/ADRP instructions
[linux.git] / arch / arm64 / include / asm / insn.h
index c6802dea6cabd39cc271fee36eb75eccbdd0eaa9..9c01f04db64dbeef606488fc177c2594cd6ec1c2 100644 (file)
@@ -261,6 +261,11 @@ enum aarch64_insn_prfm_policy {
        AARCH64_INSN_PRFM_POLICY_STRM,
 };
 
+enum aarch64_insn_adr_type {
+       AARCH64_INSN_ADR_TYPE_ADRP,
+       AARCH64_INSN_ADR_TYPE_ADR,
+};
+
 #define        __AARCH64_INSN_FUNCS(abbr, mask, val)   \
 static __always_inline bool aarch64_insn_is_##abbr(u32 code) \
 { return (code & (mask)) == (val); } \
@@ -393,6 +398,9 @@ u32 aarch64_insn_gen_add_sub_imm(enum aarch64_insn_register dst,
                                 enum aarch64_insn_register src,
                                 int imm, enum aarch64_insn_variant variant,
                                 enum aarch64_insn_adsb_type type);
+u32 aarch64_insn_gen_adr(unsigned long pc, unsigned long addr,
+                        enum aarch64_insn_register reg,
+                        enum aarch64_insn_adr_type type);
 u32 aarch64_insn_gen_bitfield(enum aarch64_insn_register dst,
                              enum aarch64_insn_register src,
                              int immr, int imms,