Lines Matching full:place
77 static u64 do_reloc(enum aarch64_reloc_op reloc_op, __le32 *place, u64 val) in do_reloc() argument
83 return val - (u64)place; in do_reloc()
85 return (val & ~0xfff) - ((u64)place & ~0xfff); in do_reloc()
94 static int reloc_data(enum aarch64_reloc_op op, void *place, u64 val, int len) in reloc_data() argument
96 s64 sval = do_reloc(op, place, val); in reloc_data()
99 * The ELF psABI for AArch64 documents the 16-bit and 32-bit place in reloc_data()
112 *(s16 *)place = sval; in reloc_data()
128 *(s32 *)place = sval; in reloc_data()
144 *(s64 *)place = sval; in reloc_data()
158 static int reloc_insn_movw(enum aarch64_reloc_op op, __le32 *place, u64 val, in reloc_insn_movw() argument
163 u32 insn = le32_to_cpu(*place); in reloc_insn_movw()
165 sval = do_reloc(op, place, val); in reloc_insn_movw()
191 *place = cpu_to_le32(insn); in reloc_insn_movw()
199 static int reloc_insn_imm(enum aarch64_reloc_op op, __le32 *place, u64 val, in reloc_insn_imm() argument
204 u32 insn = le32_to_cpu(*place); in reloc_insn_imm()
207 sval = do_reloc(op, place, val); in reloc_insn_imm()
216 *place = cpu_to_le32(insn); in reloc_insn_imm()
235 __le32 *place, u64 val) in reloc_insn_adrp() argument
239 if (!is_forbidden_offset_for_adrp(place)) in reloc_insn_adrp()
240 return reloc_insn_imm(RELOC_OP_PAGE, place, val, 12, 21, in reloc_insn_adrp()
244 if (!reloc_insn_imm(RELOC_OP_PREL, place, val & ~0xfff, 0, 21, in reloc_insn_adrp()
246 insn = le32_to_cpu(*place); in reloc_insn_adrp()
250 val = module_emit_veneer_for_adrp(mod, sechdrs, place, val & ~0xfff); in reloc_insn_adrp()
253 insn = aarch64_insn_gen_branch_imm((u64)place, val, in reloc_insn_adrp()
257 *place = cpu_to_le32(insn); in reloc_insn_adrp()