Lines Matching +full:0 +full:x60000000
66 return 0; in patch_alt_instruction()
82 return 0; in patch_feature_section()
97 return 0; in patch_feature_section()
130 instrs[0] = 0x60000000; /* nop */ in do_stf_entry_barrier_fixups()
131 instrs[1] = 0x60000000; /* nop */ in do_stf_entry_barrier_fixups()
132 instrs[2] = 0x60000000; /* nop */ in do_stf_entry_barrier_fixups()
134 i = 0; in do_stf_entry_barrier_fixups()
136 instrs[i++] = 0x7d4802a6; /* mflr r10 */ in do_stf_entry_barrier_fixups()
137 instrs[i++] = 0x60000000; /* branch patched below */ in do_stf_entry_barrier_fixups()
138 instrs[i++] = 0x7d4803a6; /* mtlr r10 */ in do_stf_entry_barrier_fixups()
140 instrs[i++] = 0x7e0006ac; /* eieio + bit 6 hint */ in do_stf_entry_barrier_fixups()
142 instrs[i++] = 0x7c0004ac; /* hwsync */ in do_stf_entry_barrier_fixups()
143 instrs[i++] = 0xe94d0000; /* ld r10,0(r13) */ in do_stf_entry_barrier_fixups()
144 instrs[i++] = 0x63ff0000; /* ori 31,31,0 speculation barrier */ in do_stf_entry_barrier_fixups()
147 for (i = 0; start < end; start++, i++) { in do_stf_entry_barrier_fixups()
152 patch_instruction((struct ppc_inst *)dest, ppc_inst(instrs[0])); in do_stf_entry_barrier_fixups()
182 instrs[0] = 0x60000000; /* nop */ in do_stf_exit_barrier_fixups()
183 instrs[1] = 0x60000000; /* nop */ in do_stf_exit_barrier_fixups()
184 instrs[2] = 0x60000000; /* nop */ in do_stf_exit_barrier_fixups()
185 instrs[3] = 0x60000000; /* nop */ in do_stf_exit_barrier_fixups()
186 instrs[4] = 0x60000000; /* nop */ in do_stf_exit_barrier_fixups()
187 instrs[5] = 0x60000000; /* nop */ in do_stf_exit_barrier_fixups()
189 i = 0; in do_stf_exit_barrier_fixups()
192 instrs[i++] = 0x7db14ba6; /* mtspr 0x131, r13 (HSPRG1) */ in do_stf_exit_barrier_fixups()
193 instrs[i++] = 0x7db04aa6; /* mfspr r13, 0x130 (HSPRG0) */ in do_stf_exit_barrier_fixups()
195 instrs[i++] = 0x7db243a6; /* mtsprg 2,r13 */ in do_stf_exit_barrier_fixups()
196 instrs[i++] = 0x7db142a6; /* mfsprg r13,1 */ in do_stf_exit_barrier_fixups()
198 instrs[i++] = 0x7c0004ac; /* hwsync */ in do_stf_exit_barrier_fixups()
199 instrs[i++] = 0xe9ad0000; /* ld r13,0(r13) */ in do_stf_exit_barrier_fixups()
200 instrs[i++] = 0x63ff0000; /* ori 31,31,0 speculation barrier */ in do_stf_exit_barrier_fixups()
202 instrs[i++] = 0x7db14aa6; /* mfspr r13, 0x131 (HSPRG1) */ in do_stf_exit_barrier_fixups()
204 instrs[i++] = 0x7db242a6; /* mfsprg r13,2 */ in do_stf_exit_barrier_fixups()
207 instrs[i++] = 0x7e0006ac; /* eieio + bit 6 hint */ in do_stf_exit_barrier_fixups()
210 for (i = 0; start < end; start++, i++) { in do_stf_exit_barrier_fixups()
215 patch_instruction((struct ppc_inst *)dest, ppc_inst(instrs[0])); in do_stf_exit_barrier_fixups()
246 instrs[0] = 0x60000000; /* nop */ in do_uaccess_flush_fixups()
247 instrs[1] = 0x60000000; /* nop */ in do_uaccess_flush_fixups()
248 instrs[2] = 0x60000000; /* nop */ in do_uaccess_flush_fixups()
249 instrs[3] = 0x4e800020; /* blr */ in do_uaccess_flush_fixups()
251 i = 0; in do_uaccess_flush_fixups()
253 instrs[3] = 0x60000000; /* nop */ in do_uaccess_flush_fixups()
258 instrs[i++] = 0x63ff0000; /* ori 31,31,0 speculation barrier */ in do_uaccess_flush_fixups()
259 instrs[i++] = 0x63de0000; /* ori 30,30,0 L1d flush*/ in do_uaccess_flush_fixups()
263 instrs[i++] = 0x7c12dba6; /* mtspr TRIG2,r0 (SPR #882) */ in do_uaccess_flush_fixups()
265 for (i = 0; start < end; start++, i++) { in do_uaccess_flush_fixups()
270 patch_instruction((struct ppc_inst *)dest, ppc_inst(instrs[0])); in do_uaccess_flush_fixups()
296 instrs[0] = 0x60000000; /* nop */ in do_entry_flush_fixups()
297 instrs[1] = 0x60000000; /* nop */ in do_entry_flush_fixups()
298 instrs[2] = 0x60000000; /* nop */ in do_entry_flush_fixups()
300 i = 0; in do_entry_flush_fixups()
302 instrs[i++] = 0x7d4802a6; /* mflr r10 */ in do_entry_flush_fixups()
303 instrs[i++] = 0x60000000; /* branch patched below */ in do_entry_flush_fixups()
304 instrs[i++] = 0x7d4803a6; /* mtlr r10 */ in do_entry_flush_fixups()
308 instrs[i++] = 0x63ff0000; /* ori 31,31,0 speculation barrier */ in do_entry_flush_fixups()
309 instrs[i++] = 0x63de0000; /* ori 30,30,0 L1d flush*/ in do_entry_flush_fixups()
313 instrs[i++] = 0x7c12dba6; /* mtspr TRIG2,r0 (SPR #882) */ in do_entry_flush_fixups()
315 for (i = 0; start < end; start++, i++) { in do_entry_flush_fixups()
320 patch_instruction((struct ppc_inst *)dest, ppc_inst(instrs[0])); in do_entry_flush_fixups()
350 instrs[0] = 0x60000000; /* nop */ in do_rfi_flush_fixups()
351 instrs[1] = 0x60000000; /* nop */ in do_rfi_flush_fixups()
352 instrs[2] = 0x60000000; /* nop */ in do_rfi_flush_fixups()
356 instrs[0] = 0x48000010; in do_rfi_flush_fixups()
358 i = 0; in do_rfi_flush_fixups()
360 instrs[i++] = 0x63ff0000; /* ori 31,31,0 speculation barrier */ in do_rfi_flush_fixups()
361 instrs[i++] = 0x63de0000; /* ori 30,30,0 L1d flush*/ in do_rfi_flush_fixups()
365 instrs[i++] = 0x7c12dba6; /* mtspr TRIG2,r0 (SPR #882) */ in do_rfi_flush_fixups()
367 for (i = 0; start < end; start++, i++) { in do_rfi_flush_fixups()
372 patch_instruction((struct ppc_inst *)dest, ppc_inst(instrs[0])); in do_rfi_flush_fixups()
396 instr = 0x60000000; /* nop */ in do_barrier_nospec_fixups_range()
400 instr = 0x63ff0000; /* ori 31,31,0 speculation barrier */ in do_barrier_nospec_fixups_range()
403 for (i = 0; start < end; start++, i++) { in do_barrier_nospec_fixups_range()
437 instr[0] = PPC_INST_NOP; in do_barrier_nospec_fixups_range()
442 instr[0] = PPC_INST_ISYNC; in do_barrier_nospec_fixups_range()
446 for (i = 0; start < end; start++, i++) { in do_barrier_nospec_fixups_range()
450 patch_instruction((struct ppc_inst *)dest, ppc_inst(instr[0])); in do_barrier_nospec_fixups_range()
503 if (PHYSICAL_START == 0) in do_final_fixups()
579 return 0; in check_features()
607 fixup.alt_start_off = fixup.alt_end_off = 0; in test_basic_patching()
610 check(memcmp(ftr_fixup_test1, ftr_fixup_test1_orig, size) == 0); in test_basic_patching()
614 check(memcmp(ftr_fixup_test1, ftr_fixup_test1_orig, size) == 0); in test_basic_patching()
617 patch_feature_section(0, &fixup); in test_basic_patching()
618 check(memcmp(ftr_fixup_test1, ftr_fixup_test1_expected, size) == 0); in test_basic_patching()
622 check(memcmp(ftr_fixup_test1, ftr_fixup_test1_orig, size) == 0); in test_basic_patching()
624 check(memcmp(ftr_fixup_test1, ftr_fixup_test1_expected, size) == 0); in test_basic_patching()
636 fixup.value = fixup.mask = 0xF; in test_alternative_patching()
643 check(memcmp(ftr_fixup_test2, ftr_fixup_test2_orig, size) == 0); in test_alternative_patching()
646 patch_feature_section(0xF, &fixup); in test_alternative_patching()
647 check(memcmp(ftr_fixup_test2, ftr_fixup_test2_orig, size) == 0); in test_alternative_patching()
650 patch_feature_section(0, &fixup); in test_alternative_patching()
651 check(memcmp(ftr_fixup_test2, ftr_fixup_test2_expected, size) == 0); in test_alternative_patching()
655 check(memcmp(ftr_fixup_test2, ftr_fixup_test2_orig, size) == 0); in test_alternative_patching()
656 patch_feature_section(~0xF, &fixup); in test_alternative_patching()
657 check(memcmp(ftr_fixup_test2, ftr_fixup_test2_expected, size) == 0); in test_alternative_patching()
668 fixup.value = fixup.mask = 0xC; in test_alternative_case_too_big()
675 check(memcmp(ftr_fixup_test3, ftr_fixup_test3_orig, size) == 0); in test_alternative_case_too_big()
678 check(patch_feature_section(0xF, &fixup) == 1); in test_alternative_case_too_big()
679 check(memcmp(ftr_fixup_test3, ftr_fixup_test3_orig, size) == 0); in test_alternative_case_too_big()
680 check(patch_feature_section(0, &fixup) == 1); in test_alternative_case_too_big()
681 check(memcmp(ftr_fixup_test3, ftr_fixup_test3_orig, size) == 0); in test_alternative_case_too_big()
682 check(patch_feature_section(~0xF, &fixup) == 1); in test_alternative_case_too_big()
683 check(memcmp(ftr_fixup_test3, ftr_fixup_test3_orig, size) == 0); in test_alternative_case_too_big()
705 check(memcmp(ftr_fixup_test4, ftr_fixup_test4_orig, size) == 0); in test_alternative_case_too_small()
709 check(memcmp(ftr_fixup_test4, ftr_fixup_test4_orig, size) == 0); in test_alternative_case_too_small()
712 patch_feature_section(0, &fixup); in test_alternative_case_too_small()
713 check(memcmp(ftr_fixup_test4, ftr_fixup_test4_expected, size) == 0); in test_alternative_case_too_small()
717 check(memcmp(ftr_fixup_test4, ftr_fixup_test4_orig, size) == 0); in test_alternative_case_too_small()
719 check(memcmp(ftr_fixup_test4, ftr_fixup_test4_expected, size) == 0); in test_alternative_case_too_small()
729 check(memcmp(ftr_fixup_test5, ftr_fixup_test5_expected, size) == 0); in test_alternative_case_with_branch()
739 check(memcmp(ftr_fixup_test6, ftr_fixup_test6_expected, size) == 0); in test_alternative_case_with_external_branch()
749 check(memcmp(ftr_fixup_test7, ftr_fixup_test7_expected, size) == 0); in test_alternative_case_with_branch_to_end()
761 ftr_fixup_test_FTR_macros_expected, size) == 0); in test_cpu_macros()
774 ftr_fixup_test_FW_FTR_macros_expected, size) == 0); in test_fw_macros()
790 lwsync_fixup_test_expected_LWSYNC, size) == 0); in test_lwsync_macros()
793 lwsync_fixup_test_expected_SYNC, size) == 0); in test_lwsync_macros()
809 fixup.alt_start_off = fixup.alt_end_off = 0; in test_prefix_patching()
812 check(memcmp(ftr_fixup_prefix1, ftr_fixup_prefix1_orig, size) == 0); in test_prefix_patching()
814 patch_feature_section(0, &fixup); in test_prefix_patching()
815 check(memcmp(ftr_fixup_prefix1, ftr_fixup_prefix1_expected, size) == 0); in test_prefix_patching()
816 check(memcmp(ftr_fixup_prefix1, ftr_fixup_prefix1_orig, size) != 0); in test_prefix_patching()
834 check(memcmp(ftr_fixup_prefix2, ftr_fixup_prefix2_orig, size) == 0); in test_prefix_alt_patching()
836 patch_feature_section(0, &fixup); in test_prefix_alt_patching()
837 check(memcmp(ftr_fixup_prefix2, ftr_fixup_prefix2_expected, size) == 0); in test_prefix_alt_patching()
838 check(memcmp(ftr_fixup_prefix2, ftr_fixup_prefix2_orig, size) != 0); in test_prefix_alt_patching()
856 check(memcmp(ftr_fixup_prefix3, ftr_fixup_prefix3_orig, size) == 0); in test_prefix_word_alt_patching()
858 patch_feature_section(0, &fixup); in test_prefix_word_alt_patching()
859 check(memcmp(ftr_fixup_prefix3, ftr_fixup_prefix3_expected, size) == 0); in test_prefix_word_alt_patching()
860 patch_feature_section(0, &fixup); in test_prefix_word_alt_patching()
861 check(memcmp(ftr_fixup_prefix3, ftr_fixup_prefix3_orig, size) != 0); in test_prefix_word_alt_patching()
887 return 0; in test_feature_fixups()