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()
212 /* One extra reloc so it's always 0-addr terminated */ in get_stubs_size()
254 me->arch.ool_stub_index = 0; in get_stubs_size()
274 _count_relocs = 0; in count_pcpu_relocs()
275 r_info = 0; in count_pcpu_relocs()
276 r_addend = 0; in count_pcpu_relocs()
278 for (i = 0; i < num; i++) { in count_pcpu_relocs()
302 /* One extra reloc so it's always 0-addr terminated */ in get_got_size()
304 unsigned int i, symindex = 0; in get_got_size()
363 if (vers->name[0] == '.') { in dedotify_versions()
371 unsigned long out = 0; in dedotify_ext_version_names()
373 char last = '\0'; in dedotify_ext_version_names()
375 for (in = 0; in < size; in++) { in dedotify_ext_version_names()
377 if (last == '\0' && str_seq[in] == '.') in dedotify_ext_version_names()
383 memset(&str_seq[out], 0, size - out); in dedotify_ext_version_names()
397 if (name[0] == '.') { in dedotify()
398 if (strcmp(name+1, "TOC.") == 0) in dedotify()
418 && strcmp(strtab + syms[i].st_name, "TOC.") == 0) in find_dot_toc()
440 if (strcmp(secstrings + sechdrs[i].sh_name, ".stubs") == 0) in module_frob_arch_sections()
443 else if (strcmp(secstrings + sechdrs[i].sh_name, ".data..percpu") == 0) in module_frob_arch_sections()
445 else if (strcmp(secstrings + sechdrs[i].sh_name, ".mygot") == 0) { in module_frob_arch_sections()
451 else if (strcmp(secstrings + sechdrs[i].sh_name, ".toc") == 0) { in module_frob_arch_sections()
455 } else if (strcmp(secstrings + sechdrs[i].sh_name, "__versions") == 0) in module_frob_arch_sections()
458 else if (strcmp(secstrings + sechdrs[i].sh_name, "__version_ext_names") == 0) in module_frob_arch_sections()
495 return 0; in module_frob_arch_sections()
505 PPC_PREFIX_MLS | __PPC_PRFX_R(0),
511 PPC_RAW_ADDIS(_R12, _R12, 0),
512 PPC_RAW_ADDI(_R12, _R12, 0),
536 if ((unsigned long)entry->jump % 8 != 0) { in create_ftrace_stub()
538 return 0; in create_ftrace_stub()
547 if (reladdr > 0x1FFFFFFFFL || reladdr < -0x200000000L) { in create_ftrace_stub()
550 return 0; in create_ftrace_stub()
558 if (reladdr > 0x7FFFFFFF || reladdr < -(0x80000000L)) { in create_ftrace_stub()
561 return 0; in create_ftrace_stub()
595 return 0; in create_ftrace_stub()
605 * r2 is the TOC pointer: it actually points 0x8000 into the TOC (this gives the
613 return (sechdrs[me->arch.toc_section].sh_addr & ~0xfful) + 0x8000; in my_r2()
633 if ((unsigned long)entry->jump % 8 != 0) { in create_stub()
635 return 0; in create_stub()
639 for (i = 0; i < ARRAY_SIZE(ppc64_stub_insns); i++) { in create_stub()
642 return 0; in create_stub()
647 reladdr = 0 + offsetof(struct ppc64_stub_entry, funcdata); in create_stub()
649 if (reladdr > 0x1FFFFFFFFL || reladdr < -0x200000000L) { in create_stub()
652 return 0; in create_stub()
656 /* May not even need this if we're relative to 0 */ in create_stub()
657 if (patch_instruction(&entry->jump[0], in create_stub()
658 ppc_inst_prefix(entry->jump[0] | IMM_H18(reladdr), in create_stub()
660 return 0; in create_stub()
665 if (reladdr > 0x7FFFFFFF || reladdr < -(0x80000000L)) { in create_stub()
668 return 0; in create_stub()
672 if (patch_instruction(&entry->jump[0], in create_stub()
673 ppc_inst(entry->jump[0] | PPC_HA(reladdr)))) in create_stub()
674 return 0; in create_stub()
678 return 0; in create_stub()
683 for (i = 0; i < sizeof(func_desc_t) / sizeof(u32); i++) { in create_stub()
685 return 0; in create_stub()
689 return 0; in create_stub()
708 for (i = 0; stub_func_addr(stubs[i].funcdata); i++) { in stub_for_addr()
710 return 0; in stub_for_addr()
717 return 0; in stub_for_addr()
739 for (i = 0; got[i].addr; i++) { in got_for_addr()
741 return 0; in got_for_addr()
761 return 0; in restore_r2()
764 return 0; in restore_r2()
772 return 0; in restore_r2()
781 return 0; in restore_r2()
819 for (i = 0; i < sechdrs[relsec].sh_size / sizeof(*rela); i++) { in apply_relocate_add()
827 pr_debug("RELOC at %p: %li-type as %s (0x%lx) + %li\n", in apply_relocate_add()
854 if (value + 0x8000 > 0xffff) { in apply_relocate_add()
855 pr_err("%s: bad TOC16 relocation (0x%lx)\n", in apply_relocate_add()
860 = (*((uint16_t *) location) & ~0xffff) in apply_relocate_add()
861 | (value & 0xffff); in apply_relocate_add()
868 = (*((uint16_t *) location) & ~0xffff) in apply_relocate_add()
869 | (value & 0xffff); in apply_relocate_add()
875 if ((value & 3) != 0 || value + 0x8000 > 0xffff) { in apply_relocate_add()
876 pr_err("%s: bad TOC16_DS relocation (0x%lx)\n", in apply_relocate_add()
881 = (*((uint16_t *) location) & ~0xfffc) in apply_relocate_add()
882 | (value & 0xfffc); in apply_relocate_add()
888 if ((value & 3) != 0) { in apply_relocate_add()
889 pr_err("%s: bad TOC16_LO_DS relocation (0x%lx)\n", in apply_relocate_add()
894 = (*((uint16_t *) location) & ~0xfffc) in apply_relocate_add()
895 | (value & 0xfffc); in apply_relocate_add()
901 value = ((value + 0x8000) >> 16); in apply_relocate_add()
903 = (*((uint16_t *) location) & ~0xffff) in apply_relocate_add()
904 | (value & 0xffff); in apply_relocate_add()
929 if (value + 0x2000000 > 0x3ffffff || (value & 3) != 0){ in apply_relocate_add()
952 if (value + 0x80000000 > 0xffffffff) { in apply_relocate_add()
967 if (value + 0x200000000 > 0x3ffffffff) { in apply_relocate_add()
987 ppc_inst_prefix((*(u32 *)location & ~0x02000000), in apply_relocate_add()
988 (*((u32 *)location + 1) & ~0xf8000000) | 0xe4000000))) in apply_relocate_add()
993 ppc_inst_prefix((*(u32 *)location & ~0x3ffff) | IMM_H18(value), in apply_relocate_add()
994 (*((u32 *)location + 1) & ~0xffff) | IMM_L(value)))) in apply_relocate_add()
1019 if (value + 0x80008000 > 0xffffffff) in apply_relocate_add()
1026 if ((((uint32_t *)location)[0] & ~0xfffc) != PPC_RAW_LD(_R2, _R12, 0)) in apply_relocate_add()
1035 ((uint32_t *)location)[0] = PPC_RAW_ADDIS(_R2, _R12, PPC_HA(value)); in apply_relocate_add()
1042 value = ((value + 0x8000) >> 16); in apply_relocate_add()
1044 = (*((uint16_t *) location) & ~0xffff) in apply_relocate_add()
1045 | (value & 0xffff); in apply_relocate_add()
1052 = (*((uint16_t *) location) & ~0xffff) in apply_relocate_add()
1053 | (value & 0xffff); in apply_relocate_add()
1063 ((uint32_t *)location)[0] = (((uint32_t *)location)[0] & ~0x3ffff) | in apply_relocate_add()
1064 ((value >> 16) & 0x3ffff); in apply_relocate_add()
1065 ((uint32_t *)location)[1] = (((uint32_t *)location)[1] & ~0xffff) | in apply_relocate_add()
1066 (value & 0xffff); in apply_relocate_add()
1078 return 0; in apply_relocate_add()
1115 return 0; in module_trampoline_target()
1130 for (i = 0; stub_func_addr(stub[i].funcdata); i++) in setup_ftrace_ool_stubs()
1141 for (i = 0; i < num_stubs; i++) in setup_ftrace_ool_stubs()
1146 return 0; in setup_ftrace_ool_stubs()
1170 return 0; in module_finalize_ftrace()