Lines Matching +full:0 +full:xe4000000
36 unsigned long abi_level = hdr->e_flags & 0x3; in module_elf_check_arch()
76 return 0; in local_entry_offset()
99 #define STUB_MAGIC 0x73747562 /* stub */
103 jump, actually, to reset r2 (TOC+0x8000). */
143 PPC_RAW_ADDIS(_R11, _R2, 0),
144 PPC_RAW_ADDI(_R11, _R11, 0),
167 _count_relocs = 0; in count_relocs()
168 r_info = 0; in count_relocs()
169 r_addend = 0; in count_relocs()
170 for (i = 0; i < num; i++) in count_relocs()
203 return 0; in relacmp()
210 /* One extra reloc so it's always 0-addr terminated */ in get_stubs_size()
264 _count_relocs = 0; in count_pcpu_relocs()
265 r_info = 0; in count_pcpu_relocs()
266 r_addend = 0; in count_pcpu_relocs()
268 for (i = 0; i < num; i++) { in count_pcpu_relocs()
292 /* One extra reloc so it's always 0-addr terminated */ in get_got_size()
294 unsigned int i, symindex = 0; in get_got_size()
353 if (vers->name[0] == '.') { in dedotify_versions()
369 if (name[0] == '.') { in dedotify()
370 if (strcmp(name+1, "TOC.") == 0) in dedotify()
390 && strcmp(strtab + syms[i].st_name, "TOC.") == 0) in find_dot_toc()
412 if (strcmp(secstrings + sechdrs[i].sh_name, ".stubs") == 0) in module_frob_arch_sections()
415 else if (strcmp(secstrings + sechdrs[i].sh_name, ".data..percpu") == 0) in module_frob_arch_sections()
417 else if (strcmp(secstrings + sechdrs[i].sh_name, ".mygot") == 0) { in module_frob_arch_sections()
423 else if (strcmp(secstrings + sechdrs[i].sh_name, ".toc") == 0) { in module_frob_arch_sections()
428 else if (strcmp(secstrings+sechdrs[i].sh_name,"__versions")==0) in module_frob_arch_sections()
465 return 0; in module_frob_arch_sections()
475 PPC_PREFIX_MLS | __PPC_PRFX_R(0),
481 PPC_RAW_ADDIS(_R12, _R12, 0),
482 PPC_RAW_ADDI(_R12, _R12, 0),
506 if ((unsigned long)entry->jump % 8 != 0) { in create_ftrace_stub()
508 return 0; in create_ftrace_stub()
517 if (reladdr > 0x1FFFFFFFFL || reladdr < -0x200000000L) { in create_ftrace_stub()
520 return 0; in create_ftrace_stub()
528 if (reladdr > 0x7FFFFFFF || reladdr < -(0x80000000L)) { in create_ftrace_stub()
531 return 0; in create_ftrace_stub()
565 return 0; in create_ftrace_stub()
575 * r2 is the TOC pointer: it actually points 0x8000 into the TOC (this gives the
583 return (sechdrs[me->arch.toc_section].sh_addr & ~0xfful) + 0x8000; in my_r2()
603 if ((unsigned long)entry->jump % 8 != 0) { in create_stub()
605 return 0; in create_stub()
609 for (i = 0; i < ARRAY_SIZE(ppc64_stub_insns); i++) { in create_stub()
612 return 0; in create_stub()
617 reladdr = 0 + offsetof(struct ppc64_stub_entry, funcdata); in create_stub()
619 if (reladdr > 0x1FFFFFFFFL || reladdr < -0x200000000L) { in create_stub()
622 return 0; in create_stub()
626 /* May not even need this if we're relative to 0 */ in create_stub()
627 if (patch_instruction(&entry->jump[0], in create_stub()
628 ppc_inst_prefix(entry->jump[0] | IMM_H18(reladdr), in create_stub()
630 return 0; in create_stub()
635 if (reladdr > 0x7FFFFFFF || reladdr < -(0x80000000L)) { in create_stub()
638 return 0; in create_stub()
642 if (patch_instruction(&entry->jump[0], in create_stub()
643 ppc_inst(entry->jump[0] | PPC_HA(reladdr)))) in create_stub()
644 return 0; in create_stub()
648 return 0; in create_stub()
653 for (i = 0; i < sizeof(func_desc_t) / sizeof(u32); i++) { in create_stub()
655 return 0; in create_stub()
659 return 0; in create_stub()
678 for (i = 0; stub_func_addr(stubs[i].funcdata); i++) { in stub_for_addr()
680 return 0; in stub_for_addr()
687 return 0; in stub_for_addr()
709 for (i = 0; got[i].addr; i++) { in got_for_addr()
711 return 0; in got_for_addr()
731 return 0; in restore_r2()
734 return 0; in restore_r2()
742 return 0; in restore_r2()
751 return 0; in restore_r2()
789 for (i = 0; i < sechdrs[relsec].sh_size / sizeof(*rela); i++) { in apply_relocate_add()
797 pr_debug("RELOC at %p: %li-type as %s (0x%lx) + %li\n", in apply_relocate_add()
824 if (value + 0x8000 > 0xffff) { in apply_relocate_add()
825 pr_err("%s: bad TOC16 relocation (0x%lx)\n", in apply_relocate_add()
830 = (*((uint16_t *) location) & ~0xffff) in apply_relocate_add()
831 | (value & 0xffff); in apply_relocate_add()
838 = (*((uint16_t *) location) & ~0xffff) in apply_relocate_add()
839 | (value & 0xffff); in apply_relocate_add()
845 if ((value & 3) != 0 || value + 0x8000 > 0xffff) { in apply_relocate_add()
846 pr_err("%s: bad TOC16_DS relocation (0x%lx)\n", in apply_relocate_add()
851 = (*((uint16_t *) location) & ~0xfffc) in apply_relocate_add()
852 | (value & 0xfffc); in apply_relocate_add()
858 if ((value & 3) != 0) { in apply_relocate_add()
859 pr_err("%s: bad TOC16_LO_DS relocation (0x%lx)\n", in apply_relocate_add()
864 = (*((uint16_t *) location) & ~0xfffc) in apply_relocate_add()
865 | (value & 0xfffc); in apply_relocate_add()
871 value = ((value + 0x8000) >> 16); in apply_relocate_add()
873 = (*((uint16_t *) location) & ~0xffff) in apply_relocate_add()
874 | (value & 0xffff); in apply_relocate_add()
899 if (value + 0x2000000 > 0x3ffffff || (value & 3) != 0){ in apply_relocate_add()
922 if (value + 0x80000000 > 0xffffffff) { in apply_relocate_add()
937 if (value + 0x200000000 > 0x3ffffffff) { in apply_relocate_add()
957 ppc_inst_prefix((*(u32 *)location & ~0x02000000), in apply_relocate_add()
958 (*((u32 *)location + 1) & ~0xf8000000) | 0xe4000000))) in apply_relocate_add()
963 ppc_inst_prefix((*(u32 *)location & ~0x3ffff) | IMM_H18(value), in apply_relocate_add()
964 (*((u32 *)location + 1) & ~0xffff) | IMM_L(value)))) in apply_relocate_add()
989 if (value + 0x80008000 > 0xffffffff) in apply_relocate_add()
996 if ((((uint32_t *)location)[0] & ~0xfffc) != PPC_RAW_LD(_R2, _R12, 0)) in apply_relocate_add()
1005 ((uint32_t *)location)[0] = PPC_RAW_ADDIS(_R2, _R12, PPC_HA(value)); in apply_relocate_add()
1012 value = ((value + 0x8000) >> 16); in apply_relocate_add()
1014 = (*((uint16_t *) location) & ~0xffff) in apply_relocate_add()
1015 | (value & 0xffff); in apply_relocate_add()
1022 = (*((uint16_t *) location) & ~0xffff) in apply_relocate_add()
1023 | (value & 0xffff); in apply_relocate_add()
1033 ((uint32_t *)location)[0] = (((uint32_t *)location)[0] & ~0x3ffff) | in apply_relocate_add()
1034 ((value >> 16) & 0x3ffff); in apply_relocate_add()
1035 ((uint32_t *)location)[1] = (((uint32_t *)location)[1] & ~0xffff) | in apply_relocate_add()
1036 (value & 0xffff); in apply_relocate_add()
1048 return 0; in apply_relocate_add()
1085 return 0; in module_trampoline_target()
1106 return 0; in module_finalize_ftrace()