arm64 arch misc

 

判断指令类型aarch64_insn_is_##abbr(u32 code)

@code为32bit的asm指令

kernel\5.15\arch\arm64\include\asm\insn.h

复制代码
#define    __AARCH64_INSN_FUNCS(abbr, mask, val)                \
static __always_inline bool aarch64_insn_is_##abbr(u32 code)        \
{                                    \
    BUILD_BUG_ON(~(mask) & (val));                    \
    return (code & (mask)) == (val);                \
}                                    \
static __always_inline u32 aarch64_insn_get_##abbr##_value(void)    \
{                                    \
    return (val);                            \
}
复制代码

 

__AARCH64_INSN_FUNCS(adr,    0x9F000000, 0x10000000)
__AARCH64_INSN_FUNCS(adrp,    0x9F000000, 0x90000000)
__AARCH64_INSN_FUNCS(prfm,    0x3FC00000, 0x39800000)
__AARCH64_INSN_FUNCS(b,        0xFC000000, 0x14000000)
__AARCH64_INSN_FUNCS(bl,    0xFC000000, 0x94000000)
__AARCH64_INSN_FUNCS(cbz,    0x7F000000, 0x34000000)

 

posted @   aspirs  阅读(48)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
点击右上角即可分享
微信分享提示