Lines Matching refs:di

275 static void disasm_register_shift(const disasm_interface_t *di, u_int insn);
276 static void disasm_print_reglist(const disasm_interface_t *di, u_int insn);
277 static void disasm_insn_ldrstr(const disasm_interface_t *di, u_int insn,
279 static void disasm_insn_ldrhstrh(const disasm_interface_t *di, u_int insn,
281 static void disasm_insn_ldcstc(const disasm_interface_t *di, u_int insn,
287 disasm(const disasm_interface_t *di, vm_offset_t loc, int altfmt) in disasm() argument
299 insn = di->di_readword(loc); in disasm()
312 di->di_printf("und%s\t%08x\n", insn_condition(insn), insn); in disasm()
318 di->di_printf("%s", i_ptr->name); in disasm()
320 di->di_printf("%s%s", i_ptr->name, insn_condition(insn)); in disasm()
328 di->di_printf("\t"); in disasm()
338 di->di_printf("#0x%08x", in disasm()
342 disasm_register_shift(di, insn); in disasm()
347 di->di_printf("r%d", ((insn >> 12) & 0x0f)); in disasm()
352 di->di_printf("p"); in disasm()
356 di->di_printf("r%d", ((insn >> 16) & 0x0f)); in disasm()
360 di->di_printf("r%d", ((insn >> 8) & 0x0f)); in disasm()
364 di->di_printf("[r%d]", ((insn >> 16) & 0x0f)); in disasm()
368 di->di_printf("r%d", ((insn >> 0) & 0x0f)); in disasm()
372 disasm_insn_ldrstr(di, insn, loc); in disasm()
376 disasm_insn_ldrhstrh(di, insn, loc); in disasm()
380 disasm_print_reglist(di, insn); in disasm()
384 di->di_printf("f%d", (insn >> 12) & 7); in disasm()
388 di->di_printf("f%d", (insn >> 16) & 7); in disasm()
393 di->di_printf("#%s", insn_fpaimm(insn)); in disasm()
395 di->di_printf("f%d", insn & 7); in disasm()
402 di->di_printaddr(loc + 8 + branch); in disasm()
410 di->di_printaddr(loc + 8 + branch); in disasm()
414 di->di_printf("%s", insn_blktrans(insn)); in disasm()
418 di->di_printf("%s", insn_stkblktrans(insn)); in disasm()
422 di->di_printf("0x%08x", (insn & 0x00ffffff)); in disasm()
426 di->di_printf("0x%04x", in disasm()
432 di->di_printf("spsr"); in disasm()
434 di->di_printf("cpsr"); in disasm()
438 di->di_printf("_"); in disasm()
440 di->di_printf("c"); in disasm()
442 di->di_printf("x"); in disasm()
444 di->di_printf("s"); in disasm()
446 di->di_printf("f"); in disasm()
451 di->di_printf("b"); in disasm()
456 di->di_printf("l"); in disasm()
461 di->di_printf("s"); in disasm()
465 di->di_printf("%s", insn_fpaprec(insn)); in disasm()
472 di->di_printf("%s", insn_fparnd(insn)); in disasm()
477 di->di_printf("!"); in disasm()
481 di->di_printf("p%d", (insn >> 8) & 0x0f); in disasm()
485 disasm_insn_ldcstc(di, insn, loc); in disasm()
489 di->di_printf("0x%08x", insn); in disasm()
493 di->di_printf("%d, ", (insn >> 20) & 0x0f); in disasm()
495 di->di_printf("c%d, c%d, c%d", (insn >> 12) & 0x0f, in disasm()
498 di->di_printf(", %d", (insn >> 5) & 0x07); in disasm()
502 di->di_printf("%d, ", (insn >> 21) & 0x07); in disasm()
503 di->di_printf("r%d, c%d, c%d, %d", in disasm()
511 di->di_printf("[%c - unknown]", *f_ptr); in disasm()
519 di->di_printf("\t"); in disasm()
521 di->di_printf(", "); in disasm()
525 di->di_printf("\n"); in disasm()
531 disasm_register_shift(const disasm_interface_t *di, u_int insn) in disasm_register_shift() argument
533 di->di_printf("r%d", (insn & 0x0f)); in disasm_register_shift()
537 di->di_printf(", rrx"); in disasm_register_shift()
540 di->di_printf(", %s r%d", op2_shift(insn), in disasm_register_shift()
543 di->di_printf(", %s #%d", op2_shift(insn), in disasm_register_shift()
549 disasm_print_reglist(const disasm_interface_t *di, u_int insn) in disasm_print_reglist() argument
555 di->di_printf("{"); in disasm_print_reglist()
563 di->di_printf(", "); in disasm_print_reglist()
567 di->di_printf("r%d", start); in disasm_print_reglist()
569 di->di_printf("r%d-r%d", start, loop - 1); in disasm_print_reglist()
577 di->di_printf("}"); in disasm_print_reglist()
580 di->di_printf("^"); in disasm_print_reglist()
584 disasm_insn_ldrstr(const disasm_interface_t *di, u_int insn, u_int loc) in disasm_insn_ldrstr() argument
595 di->di_printaddr(loc + 8); in disasm_insn_ldrstr()
597 di->di_printf("[r%d", (insn >> 16) & 0x0f); in disasm_insn_ldrstr()
599 di->di_printf("%s, ", (insn & (1 << 24)) ? "" : "]"); in disasm_insn_ldrstr()
601 di->di_printf("-"); in disasm_insn_ldrstr()
603 disasm_register_shift(di, insn); in disasm_insn_ldrstr()
605 di->di_printf("#0x%03x", offset); in disasm_insn_ldrstr()
608 di->di_printf("]"); in disasm_insn_ldrstr()
613 disasm_insn_ldrhstrh(const disasm_interface_t *di, u_int insn, u_int loc) in disasm_insn_ldrhstrh() argument
624 di->di_printaddr(loc + 8); in disasm_insn_ldrhstrh()
626 di->di_printf("[r%d", (insn >> 16) & 0x0f); in disasm_insn_ldrhstrh()
628 di->di_printf("%s, ", (insn & (1 << 24)) ? "" : "]"); in disasm_insn_ldrhstrh()
630 di->di_printf("-"); in disasm_insn_ldrhstrh()
632 di->di_printf("#0x%02x", offset); in disasm_insn_ldrhstrh()
634 di->di_printf("r%d", (insn & 0x0f)); in disasm_insn_ldrhstrh()
637 di->di_printf("]"); in disasm_insn_ldrhstrh()
642 disasm_insn_ldcstc(const disasm_interface_t *di, u_int insn, u_int loc) in disasm_insn_ldcstc() argument
645 di->di_printf("f%d, ", (insn >> 12) & 0x07); in disasm_insn_ldcstc()
647 di->di_printf("c%d, ", (insn >> 12) & 0x0f); in disasm_insn_ldcstc()
649 di->di_printf("[r%d", (insn >> 16) & 0x0f); in disasm_insn_ldcstc()
651 di->di_printf("%s, ", (insn & (1 << 24)) ? "" : "]"); in disasm_insn_ldcstc()
654 di->di_printf("-"); in disasm_insn_ldcstc()
656 di->di_printf("#0x%03x", (insn & 0xff) << 2); in disasm_insn_ldcstc()
659 di->di_printf("]"); in disasm_insn_ldcstc()
662 di->di_printf("!"); in disasm_insn_ldcstc()