Lines Matching refs:ppc_inst

21 static int __patch_instruction(u32 *exec_addr, struct ppc_inst instr, u32 *patch_addr)  in __patch_instruction()
42 int raw_patch_instruction(u32 *addr, struct ppc_inst instr) in raw_patch_instruction()
144 static int do_patch_instruction(u32 *addr, struct ppc_inst instr) in do_patch_instruction()
183 static int do_patch_instruction(u32 *addr, struct ppc_inst instr) in do_patch_instruction()
190 int patch_instruction(u32 *addr, struct ppc_inst instr) in patch_instruction()
203 struct ppc_inst instr; in patch_branch()
240 bool is_conditional_branch(struct ppc_inst instr) in is_conditional_branch()
258 int create_branch(struct ppc_inst *instr, const u32 *addr, in create_branch()
263 *instr = ppc_inst(0); in create_branch()
273 *instr = ppc_inst(0x48000000 | (flags & 0x3) | (offset & 0x03FFFFFC)); in create_branch()
278 int create_cond_branch(struct ppc_inst *instr, const u32 *addr, in create_cond_branch()
292 *instr = ppc_inst(0x40000000 | (flags & 0x3FF0003) | (offset & 0xFFFC)); in create_cond_branch()
297 static unsigned int branch_opcode(struct ppc_inst instr) in branch_opcode()
302 static int instr_is_branch_iform(struct ppc_inst instr) in instr_is_branch_iform()
307 static int instr_is_branch_bform(struct ppc_inst instr) in instr_is_branch_bform()
312 int instr_is_relative_branch(struct ppc_inst instr) in instr_is_relative_branch()
320 int instr_is_relative_link_branch(struct ppc_inst instr) in instr_is_relative_link_branch()
367 int translate_branch(struct ppc_inst *instr, const u32 *dest, const u32 *src) in translate_branch()
420 struct ppc_inst instr; in test_branch_iform()
426 check(instr_is_branch_iform(ppc_inst(0x48000000))); in test_branch_iform()
428 check(instr_is_branch_iform(ppc_inst(0x4bffffff))); in test_branch_iform()
430 check(!instr_is_branch_iform(ppc_inst(0xcbffffff))); in test_branch_iform()
432 check(!instr_is_branch_iform(ppc_inst(0x7bffffff))); in test_branch_iform()
435 check(instr_is_branch_iform(ppc_inst(0x48000001))); in test_branch_iform()
437 check(instr_is_branch_iform(ppc_inst(0x4bfffffd))); in test_branch_iform()
439 check(instr_is_branch_iform(ppc_inst(0x4bff00fd))); in test_branch_iform()
441 check(!instr_is_branch_iform(ppc_inst(0x7bfffffd))); in test_branch_iform()
444 patch_instruction(iptr, ppc_inst(0x48000103)); in test_branch_iform()
447 patch_instruction(iptr, ppc_inst(0x480420ff)); in test_branch_iform()
450 patch_instruction(iptr, ppc_inst(0x49fffffc)); in test_branch_iform()
453 patch_instruction(iptr, ppc_inst(0x4bfffffc)); in test_branch_iform()
456 patch_instruction(iptr, ppc_inst(0x4a000000)); in test_branch_iform()
495 check(ppc_inst_equal(instr, ppc_inst(0x48000000))); in test_branch_iform()
502 struct ppc_inst instr; in test_create_function_call()
516 struct ppc_inst instr; in test_branch_bform()
524 check(instr_is_branch_bform(ppc_inst(0x40000000))); in test_branch_bform()
526 check(instr_is_branch_bform(ppc_inst(0x43ffffff))); in test_branch_bform()
528 check(!instr_is_branch_bform(ppc_inst(0xc3ffffff))); in test_branch_bform()
530 check(!instr_is_branch_bform(ppc_inst(0x7bffffff))); in test_branch_bform()
533 patch_instruction(iptr, ppc_inst(0x43ff0103)); in test_branch_bform()
536 patch_instruction(iptr, ppc_inst(0x43ff20ff)); in test_branch_bform()
539 patch_instruction(iptr, ppc_inst(0x43ff7ffc)); in test_branch_bform()
542 patch_instruction(iptr, ppc_inst(0x43fffffc)); in test_branch_bform()
545 patch_instruction(iptr, ppc_inst(0x43ff8000)); in test_branch_bform()
587 check(ppc_inst_equal(instr, ppc_inst(0x43FF0000))); in test_branch_bform()
594 struct ppc_inst instr; in test_translate_branch()
621 check(ppc_inst_equal(ppc_inst_read(q), ppc_inst(0x4a000000))); in test_translate_branch()
632 check(ppc_inst_equal(ppc_inst_read(q), ppc_inst(0x49fffffc))); in test_translate_branch()
678 check(ppc_inst_equal(ppc_inst_read(q), ppc_inst(0x43ff8000))); in test_translate_branch()
690 check(ppc_inst_equal(ppc_inst_read(q), ppc_inst(0x43ff7ffc))); in test_translate_branch()