Lines Matching +full:0 +full:x20200000
57 (( ( !((val) & (1<<((bits)-1))) && ((val)>>(bits)) != 0 ) || \
58 ( ((val) & (1<<((bits)-1))) && ((val)>>(bits)) != (((__typeof__(val))(~0))>>((bits)+2)))) ? \
59 0 : 1)
63 printk(KERN_ERR "module %s relocation of symbol %s is out of range (0x%lx in %d bits)\n", \
70 * 0x3fff; however, since we're only going forward, this becomes
71 * 0x1fff, and thus, since each GOT entry is 8 bytes long we can have
75 * which gives us a maximum positive displacement of 0x7fff, and as such
98 #define rnd(x) (((x)+0x1000)&~0x1fff)
104 #define rsel(v,a) (((v)+(a))&0x7ff)
108 #define rrsel(v,a) ((((v)+rnd(a))&0x7ff)+((a)-rnd(a)))
135 return (((as14 & 0x1fff) << 1) | in reassemble_14()
136 ((as14 & 0x2000) >> 13)); in reassemble_14()
144 t = (as16 << 1) & 0xffff; in reassemble_16a()
145 s = (as16 & 0x8000); in reassemble_16a()
152 return (((as17 & 0x10000) >> 16) | in reassemble_17()
153 ((as17 & 0x0f800) << 5) | in reassemble_17()
154 ((as17 & 0x00400) >> 8) | in reassemble_17()
155 ((as17 & 0x003ff) << 3)); in reassemble_17()
160 return (((as21 & 0x100000) >> 20) | in reassemble_21()
161 ((as21 & 0x0ffe00) >> 8) | in reassemble_21()
162 ((as21 & 0x000180) << 7) | in reassemble_21()
163 ((as21 & 0x00007c) << 14) | in reassemble_21()
164 ((as21 & 0x000003) << 12)); in reassemble_21()
169 return (((as22 & 0x200000) >> 21) | in reassemble_22()
170 ((as22 & 0x1f0000) << 5) | in reassemble_22()
171 ((as22 & 0x00f800) << 5) | in reassemble_22()
172 ((as22 & 0x000400) >> 8) | in reassemble_22()
173 ((as22 & 0x0003ff) << 3)); in reassemble_22()
183 PAGE_KERNEL_RWX, 0, NUMA_NO_NODE, in module_alloc()
184 __builtin_return_address(0)); in module_alloc()
190 return 0; in count_gots()
195 return 0; in count_fdescs()
200 unsigned long cnt = 0; in count_stubs()
202 for (; n > 0; n--, rela++) in count_stubs()
216 unsigned long cnt = 0; in count_gots()
218 for (; n > 0; n--, rela++) in count_gots()
233 unsigned long cnt = 0; in count_fdescs()
235 for (; n > 0; n--, rela++) in count_fdescs()
248 unsigned long cnt = 0; in count_stubs()
250 for (; n > 0; n--, rela++) in count_stubs()
284 unsigned long gots = 0, fdescs = 0, len; in module_frob_arch_sections()
288 len = hdr->e_shnum * sizeof(me->arch.section[0]); in module_frob_arch_sections()
299 ".PARISC.unwind", 14) == 0) in module_frob_arch_sections()
344 return 0; in module_frob_arch_sections()
355 BUG_ON(value == 0); in get_got()
358 for (i = 0; got[i].addr; i++) in get_got()
379 return 0; in get_fdesc()
424 BUG_ON(0 == me->arch.section[targetsec].stub_entries--); in get_stub()
434 stub->insns[0] = 0x20200000; /* ldil L'XXX,%r1 */ in get_stub()
435 stub->insns[1] = 0xe0202002; /* be,n R'XXX(%sr4,%r1) */ in get_stub()
437 stub->insns[0] |= reassemble_21(lrsel(value, addend)); in get_stub()
443 * ldd 0(%dp),%dp in get_stub()
449 * ldil 0, %r1 in get_stub()
450 * ldo 0(%r1), %r1 in get_stub()
456 * ldil 0, %r1 in get_stub()
457 * ldo 0(%r1), %r1 in get_stub()
465 stub->insns[0] = 0x0f6010db; /* ldd 0(%dp),%dp */ in get_stub()
466 stub->insns[0] |= low_sign_unext(d, 5) << 16; in get_stub()
469 stub->insns[0] = 0x537b0000; /* ldd 0(%dp),%dp */ in get_stub()
470 stub->insns[0] |= reassemble_16a(d); in get_stub()
472 stub->insns[1] = 0x53610020; /* ldd 10(%dp),%r1 */ in get_stub()
473 stub->insns[2] = 0xe820d000; /* bve (%r1) */ in get_stub()
474 stub->insns[3] = 0x537b0030; /* ldd 18(%dp),%dp */ in get_stub()
477 stub->insns[0] = 0x20200000; /* ldil 0,%r1 */ in get_stub()
478 stub->insns[1] = 0x34210000; /* ldo 0(%r1), %r1 */ in get_stub()
479 stub->insns[2] = 0x50210020; /* ldd 10(%r1),%r1 */ in get_stub()
480 stub->insns[3] = 0xe820d002; /* bve,n (%r1) */ in get_stub()
482 stub->insns[0] |= reassemble_21(lrsel(value, addend)); in get_stub()
486 stub->insns[0] = 0x20200000; /* ldil 0,%r1 */ in get_stub()
487 stub->insns[1] = 0x34210000; /* ldo 0(%r1), %r1 */ in get_stub()
488 stub->insns[2] = 0xe820d002; /* bve,n (%r1) */ in get_stub()
490 stub->insns[0] |= reassemble_21(lrsel(value, addend)); in get_stub()
521 for (i = 0; i < sechdrs[relsec].sh_size / sizeof(*rel); i++) { in apply_relocate_add()
535 //dot = (sechdrs[relsec].sh_addr + rel->r_offset) & ~0x03; in apply_relocate_add()
536 dot = (Elf32_Addr)loc & ~0x03; in apply_relocate_add()
541 #if 0 in apply_relocate_add()
543 pr_debug("Symbol %s loc 0x%x val 0x%x addend 0x%x: %s\n", in apply_relocate_add()
613 *loc = (*loc & ~0x1f1ffd) | reassemble_17(val); in apply_relocate_add()
628 *loc = (*loc & ~0x3ff1ffd) | reassemble_22(val); in apply_relocate_add()
642 return 0; in apply_relocate_add()
665 for (i = 0; i < sechdrs[relsec].sh_size / sizeof(*rel); i++) { in apply_relocate_add()
679 //dot = (sechdrs[relsec].sh_addr + rel->r_offset) & ~0x03; in apply_relocate_add()
680 dot = (Elf64_Addr)loc & ~0x03; in apply_relocate_add()
686 #if 0 in apply_relocate_add()
688 printk("Symbol %s loc %p val 0x%Lx addend 0x%Lx: %s\n", in apply_relocate_add()
708 val = lrsel(val, 0); in apply_relocate_add()
715 val = rrsel(val, 0); in apply_relocate_add()
748 == 0) in apply_relocate_add()
760 *loc = (*loc & ~0x3ff1ffd) | reassemble_22(val); in apply_relocate_add()
809 return 0; in apply_relocate_add()
827 pr_debug("register_unwind_table(), sect = %d at 0x%p - 0x%p (gp=0x%lx)\n", in register_unwind_table()
829 me->arch.unwind = unwind_table_add(me->name, 0, gp, table, end); in register_unwind_table()
860 addr[0], addr[1], addr[2], addr[3]); in module_finalize()
899 return 0; in module_finalize()
909 ".L", 2) == 0) in module_finalize()
952 return 0; in module_finalize()