Lines Matching +full:0 +full:x60000000
67 return 0; in patch_alt_instruction()
83 return 0; in patch_feature_section()
98 return 0; in patch_feature_section()
131 instrs[0] = 0x60000000; /* nop */ in do_stf_entry_barrier_fixups()
132 instrs[1] = 0x60000000; /* nop */ in do_stf_entry_barrier_fixups()
133 instrs[2] = 0x60000000; /* nop */ in do_stf_entry_barrier_fixups()
135 i = 0; in do_stf_entry_barrier_fixups()
137 instrs[i++] = 0x7d4802a6; /* mflr r10 */ in do_stf_entry_barrier_fixups()
138 instrs[i++] = 0x60000000; /* branch patched below */ in do_stf_entry_barrier_fixups()
139 instrs[i++] = 0x7d4803a6; /* mtlr r10 */ in do_stf_entry_barrier_fixups()
141 instrs[i++] = 0x7e0006ac; /* eieio + bit 6 hint */ in do_stf_entry_barrier_fixups()
143 instrs[i++] = 0x7c0004ac; /* hwsync */ in do_stf_entry_barrier_fixups()
144 instrs[i++] = 0xe94d0000; /* ld r10,0(r13) */ in do_stf_entry_barrier_fixups()
145 instrs[i++] = 0x63ff0000; /* ori 31,31,0 speculation barrier */ in do_stf_entry_barrier_fixups()
148 for (i = 0; start < end; start++, i++) { in do_stf_entry_barrier_fixups()
153 patch_instruction((struct ppc_inst *)dest, ppc_inst(instrs[0])); in do_stf_entry_barrier_fixups()
183 instrs[0] = 0x60000000; /* nop */ in do_stf_exit_barrier_fixups()
184 instrs[1] = 0x60000000; /* nop */ in do_stf_exit_barrier_fixups()
185 instrs[2] = 0x60000000; /* nop */ in do_stf_exit_barrier_fixups()
186 instrs[3] = 0x60000000; /* nop */ in do_stf_exit_barrier_fixups()
187 instrs[4] = 0x60000000; /* nop */ in do_stf_exit_barrier_fixups()
188 instrs[5] = 0x60000000; /* nop */ in do_stf_exit_barrier_fixups()
190 i = 0; in do_stf_exit_barrier_fixups()
193 instrs[i++] = 0x7db14ba6; /* mtspr 0x131, r13 (HSPRG1) */ in do_stf_exit_barrier_fixups()
194 instrs[i++] = 0x7db04aa6; /* mfspr r13, 0x130 (HSPRG0) */ in do_stf_exit_barrier_fixups()
196 instrs[i++] = 0x7db243a6; /* mtsprg 2,r13 */ in do_stf_exit_barrier_fixups()
197 instrs[i++] = 0x7db142a6; /* mfsprg r13,1 */ in do_stf_exit_barrier_fixups()
199 instrs[i++] = 0x7c0004ac; /* hwsync */ in do_stf_exit_barrier_fixups()
200 instrs[i++] = 0xe9ad0000; /* ld r13,0(r13) */ in do_stf_exit_barrier_fixups()
201 instrs[i++] = 0x63ff0000; /* ori 31,31,0 speculation barrier */ in do_stf_exit_barrier_fixups()
203 instrs[i++] = 0x7db14aa6; /* mfspr r13, 0x131 (HSPRG1) */ in do_stf_exit_barrier_fixups()
205 instrs[i++] = 0x7db242a6; /* mfsprg r13,2 */ in do_stf_exit_barrier_fixups()
208 instrs[i++] = 0x7e0006ac; /* eieio + bit 6 hint */ in do_stf_exit_barrier_fixups()
211 for (i = 0; start < end; start++, i++) { in do_stf_exit_barrier_fixups()
216 patch_instruction((struct ppc_inst *)dest, ppc_inst(instrs[0])); in do_stf_exit_barrier_fixups()
238 return 0; in __do_stf_barrier_fixups()
261 instrs[0] = 0x60000000; /* nop */ in do_uaccess_flush_fixups()
262 instrs[1] = 0x60000000; /* nop */ in do_uaccess_flush_fixups()
263 instrs[2] = 0x60000000; /* nop */ in do_uaccess_flush_fixups()
264 instrs[3] = 0x4e800020; /* blr */ in do_uaccess_flush_fixups()
266 i = 0; in do_uaccess_flush_fixups()
268 instrs[3] = 0x60000000; /* nop */ in do_uaccess_flush_fixups()
273 instrs[i++] = 0x63ff0000; /* ori 31,31,0 speculation barrier */ in do_uaccess_flush_fixups()
274 instrs[i++] = 0x63de0000; /* ori 30,30,0 L1d flush*/ in do_uaccess_flush_fixups()
278 instrs[i++] = 0x7c12dba6; /* mtspr TRIG2,r0 (SPR #882) */ in do_uaccess_flush_fixups()
280 for (i = 0; start < end; start++, i++) { in do_uaccess_flush_fixups()
285 patch_instruction((struct ppc_inst *)dest, ppc_inst(instrs[0])); in do_uaccess_flush_fixups()
309 instrs[0] = 0x60000000; /* nop */ in __do_entry_flush_fixups()
310 instrs[1] = 0x60000000; /* nop */ in __do_entry_flush_fixups()
311 instrs[2] = 0x60000000; /* nop */ in __do_entry_flush_fixups()
313 i = 0; in __do_entry_flush_fixups()
315 instrs[i++] = 0x7d4802a6; /* mflr r10 */ in __do_entry_flush_fixups()
316 instrs[i++] = 0x60000000; /* branch patched below */ in __do_entry_flush_fixups()
317 instrs[i++] = 0x7d4803a6; /* mtlr r10 */ in __do_entry_flush_fixups()
321 instrs[i++] = 0x63ff0000; /* ori 31,31,0 speculation barrier */ in __do_entry_flush_fixups()
322 instrs[i++] = 0x63de0000; /* ori 30,30,0 L1d flush*/ in __do_entry_flush_fixups()
326 instrs[i++] = 0x7c12dba6; /* mtspr TRIG2,r0 (SPR #882) */ in __do_entry_flush_fixups()
330 for (i = 0; start < end; start++, i++) { in __do_entry_flush_fixups()
335 patch_instruction((struct ppc_inst *)dest, ppc_inst(instrs[0])); in __do_entry_flush_fixups()
353 patch_instruction((struct ppc_inst *)dest, ppc_inst(instrs[0])); in __do_entry_flush_fixups()
374 return 0; in __do_entry_flush_fixups()
397 instrs[0] = 0x60000000; /* nop */ in do_rfi_flush_fixups()
398 instrs[1] = 0x60000000; /* nop */ in do_rfi_flush_fixups()
399 instrs[2] = 0x60000000; /* nop */ in do_rfi_flush_fixups()
403 instrs[0] = 0x48000010; in do_rfi_flush_fixups()
405 i = 0; in do_rfi_flush_fixups()
407 instrs[i++] = 0x63ff0000; /* ori 31,31,0 speculation barrier */ in do_rfi_flush_fixups()
408 instrs[i++] = 0x63de0000; /* ori 30,30,0 L1d flush*/ in do_rfi_flush_fixups()
412 instrs[i++] = 0x7c12dba6; /* mtspr TRIG2,r0 (SPR #882) */ in do_rfi_flush_fixups()
414 for (i = 0; start < end; start++, i++) { in do_rfi_flush_fixups()
419 patch_instruction((struct ppc_inst *)dest, ppc_inst(instrs[0])); in do_rfi_flush_fixups()
443 instr = 0x60000000; /* nop */ in do_barrier_nospec_fixups_range()
447 instr = 0x63ff0000; /* ori 31,31,0 speculation barrier */ in do_barrier_nospec_fixups_range()
450 for (i = 0; start < end; start++, i++) { in do_barrier_nospec_fixups_range()
484 instr[0] = PPC_INST_NOP; in do_barrier_nospec_fixups_range()
489 instr[0] = PPC_INST_ISYNC; in do_barrier_nospec_fixups_range()
493 for (i = 0; start < end; start++, i++) { in do_barrier_nospec_fixups_range()
497 patch_instruction((struct ppc_inst *)dest, ppc_inst(instr[0])); in do_barrier_nospec_fixups_range()
550 if (PHYSICAL_START == 0) in do_final_fixups()
626 return 0; in check_features()
654 fixup.alt_start_off = fixup.alt_end_off = 0; in test_basic_patching()
657 check(memcmp(ftr_fixup_test1, ftr_fixup_test1_orig, size) == 0); in test_basic_patching()
661 check(memcmp(ftr_fixup_test1, ftr_fixup_test1_orig, size) == 0); in test_basic_patching()
664 patch_feature_section(0, &fixup); in test_basic_patching()
665 check(memcmp(ftr_fixup_test1, ftr_fixup_test1_expected, size) == 0); in test_basic_patching()
669 check(memcmp(ftr_fixup_test1, ftr_fixup_test1_orig, size) == 0); in test_basic_patching()
671 check(memcmp(ftr_fixup_test1, ftr_fixup_test1_expected, size) == 0); in test_basic_patching()
683 fixup.value = fixup.mask = 0xF; in test_alternative_patching()
690 check(memcmp(ftr_fixup_test2, ftr_fixup_test2_orig, size) == 0); in test_alternative_patching()
693 patch_feature_section(0xF, &fixup); in test_alternative_patching()
694 check(memcmp(ftr_fixup_test2, ftr_fixup_test2_orig, size) == 0); in test_alternative_patching()
697 patch_feature_section(0, &fixup); in test_alternative_patching()
698 check(memcmp(ftr_fixup_test2, ftr_fixup_test2_expected, size) == 0); in test_alternative_patching()
702 check(memcmp(ftr_fixup_test2, ftr_fixup_test2_orig, size) == 0); in test_alternative_patching()
703 patch_feature_section(~0xF, &fixup); in test_alternative_patching()
704 check(memcmp(ftr_fixup_test2, ftr_fixup_test2_expected, size) == 0); in test_alternative_patching()
715 fixup.value = fixup.mask = 0xC; in test_alternative_case_too_big()
722 check(memcmp(ftr_fixup_test3, ftr_fixup_test3_orig, size) == 0); in test_alternative_case_too_big()
725 check(patch_feature_section(0xF, &fixup) == 1); in test_alternative_case_too_big()
726 check(memcmp(ftr_fixup_test3, ftr_fixup_test3_orig, size) == 0); in test_alternative_case_too_big()
727 check(patch_feature_section(0, &fixup) == 1); in test_alternative_case_too_big()
728 check(memcmp(ftr_fixup_test3, ftr_fixup_test3_orig, size) == 0); in test_alternative_case_too_big()
729 check(patch_feature_section(~0xF, &fixup) == 1); in test_alternative_case_too_big()
730 check(memcmp(ftr_fixup_test3, ftr_fixup_test3_orig, size) == 0); in test_alternative_case_too_big()
752 check(memcmp(ftr_fixup_test4, ftr_fixup_test4_orig, size) == 0); in test_alternative_case_too_small()
756 check(memcmp(ftr_fixup_test4, ftr_fixup_test4_orig, size) == 0); in test_alternative_case_too_small()
759 patch_feature_section(0, &fixup); in test_alternative_case_too_small()
760 check(memcmp(ftr_fixup_test4, ftr_fixup_test4_expected, size) == 0); in test_alternative_case_too_small()
764 check(memcmp(ftr_fixup_test4, ftr_fixup_test4_orig, size) == 0); in test_alternative_case_too_small()
766 check(memcmp(ftr_fixup_test4, ftr_fixup_test4_expected, size) == 0); in test_alternative_case_too_small()
776 check(memcmp(ftr_fixup_test5, ftr_fixup_test5_expected, size) == 0); in test_alternative_case_with_branch()
786 check(memcmp(ftr_fixup_test6, ftr_fixup_test6_expected, size) == 0); in test_alternative_case_with_external_branch()
796 check(memcmp(ftr_fixup_test7, ftr_fixup_test7_expected, size) == 0); in test_alternative_case_with_branch_to_end()
808 ftr_fixup_test_FTR_macros_expected, size) == 0); in test_cpu_macros()
821 ftr_fixup_test_FW_FTR_macros_expected, size) == 0); in test_fw_macros()
837 lwsync_fixup_test_expected_LWSYNC, size) == 0); in test_lwsync_macros()
840 lwsync_fixup_test_expected_SYNC, size) == 0); in test_lwsync_macros()
856 fixup.alt_start_off = fixup.alt_end_off = 0; in test_prefix_patching()
859 check(memcmp(ftr_fixup_prefix1, ftr_fixup_prefix1_orig, size) == 0); in test_prefix_patching()
861 patch_feature_section(0, &fixup); in test_prefix_patching()
862 check(memcmp(ftr_fixup_prefix1, ftr_fixup_prefix1_expected, size) == 0); in test_prefix_patching()
863 check(memcmp(ftr_fixup_prefix1, ftr_fixup_prefix1_orig, size) != 0); in test_prefix_patching()
881 check(memcmp(ftr_fixup_prefix2, ftr_fixup_prefix2_orig, size) == 0); in test_prefix_alt_patching()
883 patch_feature_section(0, &fixup); in test_prefix_alt_patching()
884 check(memcmp(ftr_fixup_prefix2, ftr_fixup_prefix2_expected, size) == 0); in test_prefix_alt_patching()
885 check(memcmp(ftr_fixup_prefix2, ftr_fixup_prefix2_orig, size) != 0); in test_prefix_alt_patching()
903 check(memcmp(ftr_fixup_prefix3, ftr_fixup_prefix3_orig, size) == 0); in test_prefix_word_alt_patching()
905 patch_feature_section(0, &fixup); in test_prefix_word_alt_patching()
906 check(memcmp(ftr_fixup_prefix3, ftr_fixup_prefix3_expected, size) == 0); in test_prefix_word_alt_patching()
907 patch_feature_section(0, &fixup); in test_prefix_word_alt_patching()
908 check(memcmp(ftr_fixup_prefix3, ftr_fixup_prefix3_orig, size) != 0); in test_prefix_word_alt_patching()
934 return 0; in test_feature_fixups()