Lines Matching defs:place
72 static u64 do_reloc(enum aarch64_reloc_op reloc_op, __le32 *place, u64 val)
78 return val - (u64)place;
80 return (val & ~0xfff) - ((u64)place & ~0xfff);
89 static int reloc_data(enum aarch64_reloc_op op, void *place, u64 val, int len)
91 s64 sval = do_reloc(op, place, val);
94 * The ELF psABI for AArch64 documents the 16-bit and 32-bit place
107 *(s16 *)place = sval;
123 *(s32 *)place = sval;
139 *(s64 *)place = sval;
153 static int reloc_insn_movw(enum aarch64_reloc_op op, __le32 *place, u64 val,
158 u32 insn = le32_to_cpu(*place);
160 sval = do_reloc(op, place, val);
186 *place = cpu_to_le32(insn);
194 static int reloc_insn_imm(enum aarch64_reloc_op op, __le32 *place, u64 val,
199 u32 insn = le32_to_cpu(*place);
202 sval = do_reloc(op, place, val);
211 *place = cpu_to_le32(insn);
230 __le32 *place, u64 val)
234 if (!is_forbidden_offset_for_adrp(place))
235 return reloc_insn_imm(RELOC_OP_PAGE, place, val, 12, 21,
239 if (!reloc_insn_imm(RELOC_OP_PREL, place, val & ~0xfff, 0, 21,
241 insn = le32_to_cpu(*place);
245 val = module_emit_veneer_for_adrp(mod, sechdrs, place, val & ~0xfff);
248 insn = aarch64_insn_gen_branch_imm((u64)place, val,
252 *place = cpu_to_le32(insn);