Lines Matching refs:offset
60 static u32 get_group_rem(u32 group, u32 *offset) in get_group_rem() argument
62 u32 val = *offset; in get_group_rem()
66 *offset = val; in get_group_rem()
92 s32 offset; in apply_relocate() local
98 offset = ELF32_R_SYM(rel->r_info); in apply_relocate()
99 if (offset < 0 || offset > (symsec->sh_size / sizeof(Elf32_Sym))) { in apply_relocate()
105 sym = ((Elf32_Sym *)symsec->sh_addr) + offset; in apply_relocate()
136 offset = __mem_to_opcode_arm(*(u32 *)loc); in apply_relocate()
137 offset = (offset & 0x00ffffff) << 2; in apply_relocate()
138 offset = sign_extend32(offset, 25); in apply_relocate()
140 offset += sym->st_value - loc; in apply_relocate()
149 (offset <= (s32)0xfe000000 || in apply_relocate()
150 offset >= (s32)0x02000000)) in apply_relocate()
151 offset = get_module_plt(module, loc, in apply_relocate()
152 offset + loc + 8) in apply_relocate()
155 if (offset <= (s32)0xfe000000 || in apply_relocate()
156 offset >= (s32)0x02000000) { in apply_relocate()
164 offset >>= 2; in apply_relocate()
165 offset &= 0x00ffffff; in apply_relocate()
168 *(u32 *)loc |= __opcode_to_mem_arm(offset); in apply_relocate()
181 offset = (*(s32 *)loc << 1) >> 1; /* sign extend */ in apply_relocate()
182 offset += sym->st_value - loc; in apply_relocate()
183 if (offset >= 0x40000000 || offset < -0x40000000) { in apply_relocate()
191 *(u32 *)loc |= offset & 0x7fffffff; in apply_relocate()
202 offset = tmp = __mem_to_opcode_arm(*(u32 *)loc); in apply_relocate()
203 offset = ((offset & 0xf0000) >> 4) | (offset & 0xfff); in apply_relocate()
204 offset = sign_extend32(offset, 15); in apply_relocate()
206 offset += sym->st_value; in apply_relocate()
209 offset -= loc; in apply_relocate()
212 offset >>= 16; in apply_relocate()
215 tmp |= ((offset & 0xf000) << 4) | in apply_relocate()
216 (offset & 0x0fff); in apply_relocate()
227 offset = ror32(tmp & 0xff, (tmp & 0xf00) >> 7); in apply_relocate()
229 offset = -offset; in apply_relocate()
230 offset += sym->st_value - loc; in apply_relocate()
231 if (offset < 0) { in apply_relocate()
232 offset = -offset; in apply_relocate()
238 shift = get_group_rem(group, &offset); in apply_relocate()
240 offset >>= 24 - shift; in apply_relocate()
241 offset |= (shift + 8) << 7; in apply_relocate()
243 *(u32 *)loc = __opcode_to_mem_arm((tmp & ~0xfff) | offset); in apply_relocate()
248 offset = tmp & 0xfff; in apply_relocate()
250 offset = -offset; in apply_relocate()
251 offset += sym->st_value - loc; in apply_relocate()
252 if (offset < 0) { in apply_relocate()
253 offset = -offset; in apply_relocate()
258 get_group_rem(2, &offset); in apply_relocate()
260 if (offset > 0xfff) { in apply_relocate()
267 *(u32 *)loc = __opcode_to_mem_arm((tmp & ~0xfff) | offset); in apply_relocate()
308 offset = (sign << 24) | ((~(j1 ^ sign) & 1) << 23) | in apply_relocate()
312 offset = sign_extend32(offset, 24); in apply_relocate()
313 offset += sym->st_value - loc; in apply_relocate()
320 (offset <= (s32)0xff000000 || in apply_relocate()
321 offset >= (s32)0x01000000)) in apply_relocate()
322 offset = get_module_plt(module, loc, in apply_relocate()
323 offset + loc + 4) in apply_relocate()
326 if (offset <= (s32)0xff000000 || in apply_relocate()
327 offset >= (s32)0x01000000) { in apply_relocate()
335 sign = (offset >> 24) & 1; in apply_relocate()
336 j1 = sign ^ (~(offset >> 23) & 1); in apply_relocate()
337 j2 = sign ^ (~(offset >> 22) & 1); in apply_relocate()
339 ((offset >> 12) & 0x03ff)); in apply_relocate()
342 ((offset >> 1) & 0x07ff)); in apply_relocate()
365 offset = ((upper & 0x000f) << 12) | in apply_relocate()
368 offset = sign_extend32(offset, 15); in apply_relocate()
369 offset += sym->st_value; in apply_relocate()
373 offset -= loc; in apply_relocate()
376 offset >>= 16; in apply_relocate()
379 ((offset & 0xf000) >> 12) | in apply_relocate()
380 ((offset & 0x0800) >> 1)); in apply_relocate()
382 ((offset & 0x0700) << 4) | in apply_relocate()
383 (offset & 0x00ff)); in apply_relocate()