Lines Matching refs:insn

32 bool aarch64_insn_is_branch_imm(u32 insn)  in aarch64_insn_is_branch_imm()  argument
34 return (aarch64_insn_is_b(insn) || aarch64_insn_is_bl(insn) || in aarch64_insn_is_branch_imm()
35 aarch64_insn_is_tbz(insn) || aarch64_insn_is_tbnz(insn) || in aarch64_insn_is_branch_imm()
36 aarch64_insn_is_cbz(insn) || aarch64_insn_is_cbnz(insn) || in aarch64_insn_is_branch_imm()
37 aarch64_insn_is_bcond(insn)); in aarch64_insn_is_branch_imm()
101 u64 aarch64_insn_decode_immediate(enum aarch64_insn_imm_type type, u32 insn) in aarch64_insn_decode_immediate() argument
109 immlo = (insn >> ADR_IMM_LOSHIFT) & ADR_IMM_LOMASK; in aarch64_insn_decode_immediate()
110 immhi = (insn >> ADR_IMM_HISHIFT) & ADR_IMM_HIMASK; in aarch64_insn_decode_immediate()
111 insn = (immhi << ADR_IMM_HILOSPLIT) | immlo; in aarch64_insn_decode_immediate()
122 return (insn >> shift) & mask; in aarch64_insn_decode_immediate()
126 u32 insn, u64 imm) in aarch64_insn_encode_immediate() argument
131 if (insn == AARCH64_BREAK_FAULT) in aarch64_insn_encode_immediate()
153 insn &= ~(mask << shift); in aarch64_insn_encode_immediate()
154 insn |= (imm & mask) << shift; in aarch64_insn_encode_immediate()
156 return insn; in aarch64_insn_encode_immediate()
182 u32 insn; in aarch64_insn_gen_branch_imm() local
196 insn = aarch64_insn_get_bl_value(); in aarch64_insn_gen_branch_imm()
199 insn = aarch64_insn_get_b_value(); in aarch64_insn_gen_branch_imm()
206 return aarch64_insn_encode_immediate(AARCH64_INSN_IMM_26, insn, in aarch64_insn_gen_branch_imm()
225 s32 aarch64_get_branch_offset(u32 insn) in aarch64_get_branch_offset() argument
229 if (aarch64_insn_is_b(insn) || aarch64_insn_is_bl(insn)) { in aarch64_get_branch_offset()
230 imm = aarch64_insn_decode_immediate(AARCH64_INSN_IMM_26, insn); in aarch64_get_branch_offset()
234 if (aarch64_insn_is_cbz(insn) || aarch64_insn_is_cbnz(insn) || in aarch64_get_branch_offset()
235 aarch64_insn_is_bcond(insn)) { in aarch64_get_branch_offset()
236 imm = aarch64_insn_decode_immediate(AARCH64_INSN_IMM_19, insn); in aarch64_get_branch_offset()
240 if (aarch64_insn_is_tbz(insn) || aarch64_insn_is_tbnz(insn)) { in aarch64_get_branch_offset()
241 imm = aarch64_insn_decode_immediate(AARCH64_INSN_IMM_14, insn); in aarch64_get_branch_offset()
253 u32 aarch64_set_branch_offset(u32 insn, s32 offset) in aarch64_set_branch_offset() argument
255 if (aarch64_insn_is_b(insn) || aarch64_insn_is_bl(insn)) in aarch64_set_branch_offset()
256 return aarch64_insn_encode_immediate(AARCH64_INSN_IMM_26, insn, in aarch64_set_branch_offset()
259 if (aarch64_insn_is_cbz(insn) || aarch64_insn_is_cbnz(insn) || in aarch64_set_branch_offset()
260 aarch64_insn_is_bcond(insn)) in aarch64_set_branch_offset()
261 return aarch64_insn_encode_immediate(AARCH64_INSN_IMM_19, insn, in aarch64_set_branch_offset()
264 if (aarch64_insn_is_tbz(insn) || aarch64_insn_is_tbnz(insn)) in aarch64_set_branch_offset()
265 return aarch64_insn_encode_immediate(AARCH64_INSN_IMM_14, insn, in aarch64_set_branch_offset()