Lines Matching refs:imm
329 u32 insn, u64 imm) in aarch64_insn_encode_immediate() argument
340 immlo = (imm & ADR_IMM_LOMASK) << ADR_IMM_LOSHIFT; in aarch64_insn_encode_immediate()
341 imm >>= ADR_IMM_HILOSPLIT; in aarch64_insn_encode_immediate()
342 immhi = (imm & ADR_IMM_HIMASK) << ADR_IMM_HISHIFT; in aarch64_insn_encode_immediate()
343 imm = immlo | immhi; in aarch64_insn_encode_immediate()
357 insn |= (imm & mask) << shift; in aarch64_insn_encode_immediate()
809 int imm, enum aarch64_insn_variant variant, in aarch64_insn_gen_add_sub_imm() argument
844 if (imm & ~(BIT(24) - 1)) in aarch64_insn_gen_add_sub_imm()
848 if (imm & ~(SZ_4K - 1)) { in aarch64_insn_gen_add_sub_imm()
850 if (imm & (SZ_4K - 1)) in aarch64_insn_gen_add_sub_imm()
853 imm >>= 12; in aarch64_insn_gen_add_sub_imm()
861 return aarch64_insn_encode_immediate(AARCH64_INSN_IMM_12, insn, imm); in aarch64_insn_gen_add_sub_imm()
864 pr_err("%s: invalid immediate encoding %d\n", __func__, imm); in aarch64_insn_gen_add_sub_imm()
924 int imm, int shift, in aarch64_insn_gen_movewide() argument
945 if (imm & ~(SZ_64K - 1)) { in aarch64_insn_gen_movewide()
946 pr_err("%s: invalid immediate encoding %d\n", __func__, imm); in aarch64_insn_gen_movewide()
975 return aarch64_insn_encode_immediate(AARCH64_INSN_IMM_16, insn, imm); in aarch64_insn_gen_movewide()
1249 s32 imm; in aarch64_get_branch_offset() local
1252 imm = aarch64_insn_decode_immediate(AARCH64_INSN_IMM_26, insn); in aarch64_get_branch_offset()
1253 return (imm << 6) >> 4; in aarch64_get_branch_offset()
1258 imm = aarch64_insn_decode_immediate(AARCH64_INSN_IMM_19, insn); in aarch64_get_branch_offset()
1259 return (imm << 13) >> 11; in aarch64_get_branch_offset()
1263 imm = aarch64_insn_decode_immediate(AARCH64_INSN_IMM_14, insn); in aarch64_get_branch_offset()
1264 return (imm << 18) >> 16; in aarch64_get_branch_offset()
1448 static u32 aarch64_encode_immediate(u64 imm, in aarch64_encode_immediate() argument
1456 if (!imm || !~imm) in aarch64_encode_immediate()
1461 if (upper_32_bits(imm)) in aarch64_encode_immediate()
1481 if ((imm & emask) != ((imm >> tmp) & emask)) in aarch64_encode_immediate()
1492 imm &= mask; in aarch64_encode_immediate()
1495 ones = hweight64(imm); in aarch64_encode_immediate()
1506 if (range_of_ones(imm)) { in aarch64_encode_immediate()
1512 ror = __ffs64(imm); in aarch64_encode_immediate()
1521 imm |= ~mask; in aarch64_encode_immediate()
1522 if (!range_of_ones(~imm)) in aarch64_encode_immediate()
1529 ror = fls(~imm); in aarch64_encode_immediate()
1548 u64 imm) in aarch64_insn_gen_logical_immediate() argument
1572 return aarch64_encode_immediate(imm, variant, insn); in aarch64_insn_gen_logical_immediate()