Lines Matching +full:0 +full:x20200000
56 (( ( !((val) & (1<<((bits)-1))) && ((val)>>(bits)) != 0 ) || \
57 ( ((val) & (1<<((bits)-1))) && ((val)>>(bits)) != (((__typeof__(val))(~0))>>((bits)+2)))) ? \
58 0 : 1)
62 printk(KERN_ERR "module %s relocation of symbol %s is out of range (0x%lx in %d bits)\n", \
69 * 0x3fff; however, since we're only going forward, this becomes
70 * 0x1fff, and thus, since each GOT entry is 8 bytes long we can have
74 * which gives us a maximum positive displacement of 0x7fff, and as such
97 #define rnd(x) (((x)+0x1000)&~0x1fff)
103 #define rsel(v,a) (((v)+(a))&0x7ff)
107 #define rrsel(v,a) ((((v)+rnd(a))&0x7ff)+((a)-rnd(a)))
134 return (((as14 & 0x1fff) << 1) | in reassemble_14()
135 ((as14 & 0x2000) >> 13)); in reassemble_14()
143 t = (as16 << 1) & 0xffff; in reassemble_16a()
144 s = (as16 & 0x8000); in reassemble_16a()
151 return (((as17 & 0x10000) >> 16) | in reassemble_17()
152 ((as17 & 0x0f800) << 5) | in reassemble_17()
153 ((as17 & 0x00400) >> 8) | in reassemble_17()
154 ((as17 & 0x003ff) << 3)); in reassemble_17()
159 return (((as21 & 0x100000) >> 20) | in reassemble_21()
160 ((as21 & 0x0ffe00) >> 8) | in reassemble_21()
161 ((as21 & 0x000180) << 7) | in reassemble_21()
162 ((as21 & 0x00007c) << 14) | in reassemble_21()
163 ((as21 & 0x000003) << 12)); in reassemble_21()
168 return (((as22 & 0x200000) >> 21) | in reassemble_22()
169 ((as22 & 0x1f0000) << 5) | in reassemble_22()
170 ((as22 & 0x00f800) << 5) | in reassemble_22()
171 ((as22 & 0x000400) >> 8) | in reassemble_22()
172 ((as22 & 0x0003ff) << 3)); in reassemble_22()
178 return 0; in count_gots()
183 return 0; in count_fdescs()
188 unsigned long cnt = 0; in count_stubs()
190 for (; n > 0; n--, rela++) in count_stubs()
204 unsigned long cnt = 0; in count_gots()
206 for (; n > 0; n--, rela++) in count_gots()
221 unsigned long cnt = 0; in count_fdescs()
223 for (; n > 0; n--, rela++) in count_fdescs()
236 unsigned long cnt = 0; in count_stubs()
238 for (; n > 0; n--, rela++) in count_stubs()
272 unsigned long gots = 0, fdescs = 0, len; in module_frob_arch_sections()
276 len = hdr->e_shnum * sizeof(me->arch.section[0]); in module_frob_arch_sections()
287 ".PARISC.unwind", 14) == 0) in module_frob_arch_sections()
332 return 0; in module_frob_arch_sections()
343 BUG_ON(value == 0); in get_got()
346 for (i = 0; got[i].addr; i++) in get_got()
367 return 0; in get_fdesc()
412 BUG_ON(0 == me->arch.section[targetsec].stub_entries--); in get_stub()
422 stub->insns[0] = 0x20200000; /* ldil L'XXX,%r1 */ in get_stub()
423 stub->insns[1] = 0xe0202002; /* be,n R'XXX(%sr4,%r1) */ in get_stub()
425 stub->insns[0] |= reassemble_21(lrsel(value, addend)); in get_stub()
431 * ldd 0(%dp),%dp in get_stub()
437 * ldil 0, %r1 in get_stub()
438 * ldo 0(%r1), %r1 in get_stub()
444 * ldil 0, %r1 in get_stub()
445 * ldo 0(%r1), %r1 in get_stub()
453 stub->insns[0] = 0x0f6010db; /* ldd 0(%dp),%dp */ in get_stub()
454 stub->insns[0] |= low_sign_unext(d, 5) << 16; in get_stub()
457 stub->insns[0] = 0x537b0000; /* ldd 0(%dp),%dp */ in get_stub()
458 stub->insns[0] |= reassemble_16a(d); in get_stub()
460 stub->insns[1] = 0x53610020; /* ldd 10(%dp),%r1 */ in get_stub()
461 stub->insns[2] = 0xe820d000; /* bve (%r1) */ in get_stub()
462 stub->insns[3] = 0x537b0030; /* ldd 18(%dp),%dp */ in get_stub()
465 stub->insns[0] = 0x20200000; /* ldil 0,%r1 */ in get_stub()
466 stub->insns[1] = 0x34210000; /* ldo 0(%r1), %r1 */ in get_stub()
467 stub->insns[2] = 0x50210020; /* ldd 10(%r1),%r1 */ in get_stub()
468 stub->insns[3] = 0xe820d002; /* bve,n (%r1) */ in get_stub()
470 stub->insns[0] |= reassemble_21(lrsel(value, addend)); in get_stub()
474 stub->insns[0] = 0x20200000; /* ldil 0,%r1 */ in get_stub()
475 stub->insns[1] = 0x34210000; /* ldo 0(%r1), %r1 */ in get_stub()
476 stub->insns[2] = 0xe820d002; /* bve,n (%r1) */ in get_stub()
478 stub->insns[0] |= reassemble_21(lrsel(value, addend)); in get_stub()
509 for (i = 0; i < sechdrs[relsec].sh_size / sizeof(*rel); i++) { in apply_relocate_add()
523 //dot = (sechdrs[relsec].sh_addr + rel->r_offset) & ~0x03; in apply_relocate_add()
524 dot = (Elf32_Addr)loc & ~0x03; in apply_relocate_add()
529 #if 0 in apply_relocate_add()
531 pr_debug("Symbol %s loc 0x%x val 0x%x addend 0x%x: %s\n", in apply_relocate_add()
601 *loc = (*loc & ~0x1f1ffd) | reassemble_17(val); in apply_relocate_add()
616 *loc = (*loc & ~0x3ff1ffd) | reassemble_22(val); in apply_relocate_add()
630 return 0; in apply_relocate_add()
653 for (i = 0; i < sechdrs[relsec].sh_size / sizeof(*rel); i++) { in apply_relocate_add()
667 //dot = (sechdrs[relsec].sh_addr + rel->r_offset) & ~0x03; in apply_relocate_add()
668 dot = (Elf64_Addr)loc & ~0x03; in apply_relocate_add()
674 #if 0 in apply_relocate_add()
676 printk("Symbol %s loc %p val 0x%Lx addend 0x%Lx: %s\n", in apply_relocate_add()
696 val = lrsel(val, 0); in apply_relocate_add()
703 val = rrsel(val, 0); in apply_relocate_add()
736 == 0) in apply_relocate_add()
748 *loc = (*loc & ~0x3ff1ffd) | reassemble_22(val); in apply_relocate_add()
797 return 0; in apply_relocate_add()
815 pr_debug("register_unwind_table(), sect = %d at 0x%p - 0x%p (gp=0x%lx)\n", in register_unwind_table()
817 me->arch.unwind = unwind_table_add(me->name, 0, gp, table, end); in register_unwind_table()
848 addr[0], addr[1], addr[2], addr[3]); in module_finalize()
887 return 0; in module_finalize()
897 ".L", 2) == 0) in module_finalize()
940 return 0; in module_finalize()