Lines Matching refs:inst

81 static inline void kvm_patch_ins(u32 *inst, u32 new_inst)  in kvm_patch_ins()  argument
83 *inst = new_inst; in kvm_patch_ins()
84 flush_icache_range((ulong)inst, (ulong)inst + 4); in kvm_patch_ins()
87 static void kvm_patch_ins_ll(u32 *inst, long addr, u32 rt) in kvm_patch_ins_ll() argument
90 kvm_patch_ins(inst, KVM_INST_LD | rt | (addr & 0x0000fffc)); in kvm_patch_ins_ll()
92 kvm_patch_ins(inst, KVM_INST_LWZ | rt | (addr & 0x0000fffc)); in kvm_patch_ins_ll()
96 static void kvm_patch_ins_ld(u32 *inst, long addr, u32 rt) in kvm_patch_ins_ld() argument
99 kvm_patch_ins(inst, KVM_INST_LD | rt | (addr & 0x0000fffc)); in kvm_patch_ins_ld()
101 kvm_patch_ins(inst, KVM_INST_LWZ | rt | ((addr + 4) & 0x0000fffc)); in kvm_patch_ins_ld()
105 static void kvm_patch_ins_lwz(u32 *inst, long addr, u32 rt) in kvm_patch_ins_lwz() argument
107 kvm_patch_ins(inst, KVM_INST_LWZ | rt | (addr & 0x0000ffff)); in kvm_patch_ins_lwz()
110 static void kvm_patch_ins_std(u32 *inst, long addr, u32 rt) in kvm_patch_ins_std() argument
113 kvm_patch_ins(inst, KVM_INST_STD | rt | (addr & 0x0000fffc)); in kvm_patch_ins_std()
115 kvm_patch_ins(inst, KVM_INST_STW | rt | ((addr + 4) & 0x0000fffc)); in kvm_patch_ins_std()
119 static void kvm_patch_ins_stw(u32 *inst, long addr, u32 rt) in kvm_patch_ins_stw() argument
121 kvm_patch_ins(inst, KVM_INST_STW | rt | (addr & 0x0000fffc)); in kvm_patch_ins_stw()
124 static void kvm_patch_ins_nop(u32 *inst) in kvm_patch_ins_nop() argument
126 kvm_patch_ins(inst, KVM_INST_NOP); in kvm_patch_ins_nop()
129 static void kvm_patch_ins_b(u32 *inst, int addr) in kvm_patch_ins_b() argument
135 if ((ulong)inst < (ulong)&__end_interrupts) in kvm_patch_ins_b()
139 kvm_patch_ins(inst, KVM_INST_B | (addr & KVM_INST_B_MASK)); in kvm_patch_ins_b()
165 static void kvm_patch_ins_mtmsrd(u32 *inst, u32 rt) in kvm_patch_ins_mtmsrd() argument
177 distance_start = (ulong)p - (ulong)inst; in kvm_patch_ins_mtmsrd()
178 next_inst = ((ulong)inst + 4); in kvm_patch_ins_mtmsrd()
204 p[kvm_emulate_mtmsrd_orig_ins_offs] = *inst; in kvm_patch_ins_mtmsrd()
208 kvm_patch_ins_b(inst, distance_start); in kvm_patch_ins_mtmsrd()
218 static void kvm_patch_ins_mtmsr(u32 *inst, u32 rt) in kvm_patch_ins_mtmsr() argument
230 distance_start = (ulong)p - (ulong)inst; in kvm_patch_ins_mtmsr()
231 next_inst = ((ulong)inst + 4); in kvm_patch_ins_mtmsr()
264 p[kvm_emulate_mtmsr_orig_ins_offs] = *inst; in kvm_patch_ins_mtmsr()
268 kvm_patch_ins_b(inst, distance_start); in kvm_patch_ins_mtmsr()
279 static void kvm_patch_ins_wrtee(u32 *inst, u32 rt, int imm_one) in kvm_patch_ins_wrtee() argument
291 distance_start = (ulong)p - (ulong)inst; in kvm_patch_ins_wrtee()
292 next_inst = ((ulong)inst + 4); in kvm_patch_ins_wrtee()
325 p[kvm_emulate_wrtee_orig_ins_offs] = *inst; in kvm_patch_ins_wrtee()
329 kvm_patch_ins_b(inst, distance_start); in kvm_patch_ins_wrtee()
336 static void kvm_patch_ins_wrteei_0(u32 *inst) in kvm_patch_ins_wrteei_0() argument
348 distance_start = (ulong)p - (ulong)inst; in kvm_patch_ins_wrteei_0()
349 next_inst = ((ulong)inst + 4); in kvm_patch_ins_wrteei_0()
363 kvm_patch_ins_b(inst, distance_start); in kvm_patch_ins_wrteei_0()
377 static void kvm_patch_ins_mtsrin(u32 *inst, u32 rt, u32 rb) in kvm_patch_ins_mtsrin() argument
389 distance_start = (ulong)p - (ulong)inst; in kvm_patch_ins_mtsrin()
390 next_inst = ((ulong)inst + 4); in kvm_patch_ins_mtsrin()
404 p[kvm_emulate_mtsrin_orig_ins_offs] = *inst; in kvm_patch_ins_mtsrin()
408 kvm_patch_ins_b(inst, distance_start); in kvm_patch_ins_mtsrin()
428 static void kvm_check_ins(u32 *inst, u32 features) in kvm_check_ins() argument
430 u32 _inst = *inst; in kvm_check_ins()
437 kvm_patch_ins_ld(inst, magic_var(msr), inst_rt); in kvm_check_ins()
440 kvm_patch_ins_ld(inst, magic_var(sprg0), inst_rt); in kvm_check_ins()
443 kvm_patch_ins_ld(inst, magic_var(sprg1), inst_rt); in kvm_check_ins()
446 kvm_patch_ins_ld(inst, magic_var(sprg2), inst_rt); in kvm_check_ins()
449 kvm_patch_ins_ld(inst, magic_var(sprg3), inst_rt); in kvm_check_ins()
452 kvm_patch_ins_ld(inst, magic_var(srr0), inst_rt); in kvm_check_ins()
455 kvm_patch_ins_ld(inst, magic_var(srr1), inst_rt); in kvm_check_ins()
462 kvm_patch_ins_ld(inst, magic_var(dar), inst_rt); in kvm_check_ins()
465 kvm_patch_ins_lwz(inst, magic_var(dsisr), inst_rt); in kvm_check_ins()
471 kvm_patch_ins_lwz(inst, magic_var(mas0), inst_rt); in kvm_check_ins()
475 kvm_patch_ins_lwz(inst, magic_var(mas1), inst_rt); in kvm_check_ins()
479 kvm_patch_ins_ld(inst, magic_var(mas2), inst_rt); in kvm_check_ins()
483 kvm_patch_ins_lwz(inst, magic_var(mas7_3) + 4, inst_rt); in kvm_check_ins()
487 kvm_patch_ins_lwz(inst, magic_var(mas4), inst_rt); in kvm_check_ins()
491 kvm_patch_ins_lwz(inst, magic_var(mas6), inst_rt); in kvm_check_ins()
495 kvm_patch_ins_lwz(inst, magic_var(mas7_3), inst_rt); in kvm_check_ins()
504 kvm_patch_ins_ld(inst, magic_var(sprg4), inst_rt); in kvm_check_ins()
511 kvm_patch_ins_ld(inst, magic_var(sprg5), inst_rt); in kvm_check_ins()
518 kvm_patch_ins_ld(inst, magic_var(sprg6), inst_rt); in kvm_check_ins()
525 kvm_patch_ins_ld(inst, magic_var(sprg7), inst_rt); in kvm_check_ins()
531 kvm_patch_ins_lwz(inst, magic_var(esr), inst_rt); in kvm_check_ins()
537 kvm_patch_ins_lwz(inst, magic_var(pir), inst_rt); in kvm_check_ins()
543 kvm_patch_ins_std(inst, magic_var(sprg0), inst_rt); in kvm_check_ins()
546 kvm_patch_ins_std(inst, magic_var(sprg1), inst_rt); in kvm_check_ins()
549 kvm_patch_ins_std(inst, magic_var(sprg2), inst_rt); in kvm_check_ins()
552 kvm_patch_ins_std(inst, magic_var(sprg3), inst_rt); in kvm_check_ins()
555 kvm_patch_ins_std(inst, magic_var(srr0), inst_rt); in kvm_check_ins()
558 kvm_patch_ins_std(inst, magic_var(srr1), inst_rt); in kvm_check_ins()
565 kvm_patch_ins_std(inst, magic_var(dar), inst_rt); in kvm_check_ins()
568 kvm_patch_ins_stw(inst, magic_var(dsisr), inst_rt); in kvm_check_ins()
573 kvm_patch_ins_stw(inst, magic_var(mas0), inst_rt); in kvm_check_ins()
577 kvm_patch_ins_stw(inst, magic_var(mas1), inst_rt); in kvm_check_ins()
581 kvm_patch_ins_std(inst, magic_var(mas2), inst_rt); in kvm_check_ins()
585 kvm_patch_ins_stw(inst, magic_var(mas7_3) + 4, inst_rt); in kvm_check_ins()
589 kvm_patch_ins_stw(inst, magic_var(mas4), inst_rt); in kvm_check_ins()
593 kvm_patch_ins_stw(inst, magic_var(mas6), inst_rt); in kvm_check_ins()
597 kvm_patch_ins_stw(inst, magic_var(mas7_3), inst_rt); in kvm_check_ins()
603 kvm_patch_ins_std(inst, magic_var(sprg4), inst_rt); in kvm_check_ins()
607 kvm_patch_ins_std(inst, magic_var(sprg5), inst_rt); in kvm_check_ins()
611 kvm_patch_ins_std(inst, magic_var(sprg6), inst_rt); in kvm_check_ins()
615 kvm_patch_ins_std(inst, magic_var(sprg7), inst_rt); in kvm_check_ins()
621 kvm_patch_ins_stw(inst, magic_var(esr), inst_rt); in kvm_check_ins()
627 kvm_patch_ins_nop(inst); in kvm_check_ins()
632 kvm_patch_ins_mtmsrd(inst, inst_rt); in kvm_check_ins()
636 kvm_patch_ins_mtmsr(inst, inst_rt); in kvm_check_ins()
640 kvm_patch_ins_wrtee(inst, inst_rt, 0); in kvm_check_ins()
650 kvm_patch_ins_mtsrin(inst, inst_rt, inst_rb); in kvm_check_ins()
659 kvm_patch_ins_wrteei_0(inst); in kvm_check_ins()
663 kvm_patch_ins_wrtee(inst, 0, 1); in kvm_check_ins()