Lines Matching refs:di

292 static void disasm_register_shift(const disasm_interface_t *di, u_int insn);
293 static void disasm_print_reglist(const disasm_interface_t *di, u_int insn);
294 static void disasm_insn_ldrstr(const disasm_interface_t *di, u_int insn,
296 static void disasm_insn_ldrhstrh(const disasm_interface_t *di, u_int insn,
298 static void disasm_insn_ldcstc(const disasm_interface_t *di, u_int insn,
304 disasm(const disasm_interface_t *di, u_int loc, int altfmt)
316 insn = di->di_readword(loc);
318 /* di->di_printf("loc=%08x insn=%08x : ", loc, insn);*/
329 di->di_printf("und%s\t%08x\n", insn_condition(insn), insn);
335 di->di_printf("%s", i_ptr->name);
337 di->di_printf("%s%s", i_ptr->name, insn_condition(insn));
345 di->di_printf("\t");
355 di->di_printf("#0x%08x",
359 disasm_register_shift(di, insn);
364 di->di_printf("r%d", ((insn >> 12) & 0x0f));
369 di->di_printf("p");
373 di->di_printf("r%d", ((insn >> 16) & 0x0f));
377 di->di_printf("r%d", ((insn >> 8) & 0x0f));
381 di->di_printf("[r%d]", ((insn >> 16) & 0x0f));
385 di->di_printf("r%d", ((insn >> 0) & 0x0f));
389 disasm_insn_ldrstr(di, insn, loc);
393 disasm_insn_ldrhstrh(di, insn, loc);
397 disasm_print_reglist(di, insn);
401 di->di_printf("f%d", (insn >> 12) & 7);
405 di->di_printf("f%d", (insn >> 16) & 7);
410 di->di_printf("#%s", insn_fpaimm(insn));
412 di->di_printf("f%d", insn & 7);
416 di->di_printf("ror #%d", ((insn >> 10) & 3) << 3);
420 di->di_printf("#%d", (insn >> 7) & 31);
424 di->di_printf("#%d", 1 + ((insn >> 16) & 31));
431 di->di_printaddr(loc + 8 + branch);
439 di->di_printaddr(loc + 8 + branch);
443 di->di_printf("%s", insn_blktrans(insn));
447 di->di_printf("%s", insn_stkblktrans(insn));
451 di->di_printf("0x%08x", (insn & 0x00ffffff));
455 di->di_printf("0x%04x",
461 di->di_printf("spsr");
463 di->di_printf("cpsr");
467 di->di_printf("_");
469 di->di_printf("c");
471 di->di_printf("x");
473 di->di_printf("s");
475 di->di_printf("f");
480 di->di_printf("b");
485 di->di_printf("l");
490 di->di_printf("s");
494 di->di_printf("%s", insn_fpaprec(insn));
501 di->di_printf("%s", insn_fparnd(insn));
506 di->di_printf("!");
510 di->di_printf("p%d", (insn >> 8) & 0x0f);
514 disasm_insn_ldcstc(di, insn, loc);
518 di->di_printf("0x%08x", insn);
522 di->di_printf("%d, ", (insn >> 20) & 0x0f);
524 di->di_printf("c%d, c%d, c%d", (insn >> 12) & 0x0f,
527 di->di_printf(", %d", (insn >> 5) & 0x07);
531 di->di_printf("%d, ", (insn >> 21) & 0x07);
532 di->di_printf("r%d, c%d, c%d, %d",
537 di->di_printf(", %d", (insn >> 5) & 0x07);*/
540 di->di_printf("[%c - unknown]", *f_ptr);
548 di->di_printf("\t");
550 di->di_printf(", ");
554 di->di_printf("\n");
561 disasm_register_shift(const disasm_interface_t *di, u_int insn)
563 di->di_printf("r%d", (insn & 0x0f));
567 di->di_printf(", rrx");
570 di->di_printf(", %s r%d", op2_shift(insn),
573 di->di_printf(", %s #%d", op2_shift(insn),
580 disasm_print_reglist(const disasm_interface_t *di, u_int insn)
586 di->di_printf("{");
594 di->di_printf(", ");
598 di->di_printf("r%d", start);
600 di->di_printf("r%d-r%d", start, loop - 1);
608 di->di_printf("}");
611 di->di_printf("^");
615 disasm_insn_ldrstr(const disasm_interface_t *di, u_int insn, u_int loc)
626 di->di_printaddr(loc + 8);
628 di->di_printf("[r%d", (insn >> 16) & 0x0f);
630 di->di_printf("%s, ", (insn & (1 << 24)) ? "" : "]");
632 di->di_printf("-");
634 disasm_register_shift(di, insn);
636 di->di_printf("#0x%03x", offset);
639 di->di_printf("]");
644 disasm_insn_ldrhstrh(const disasm_interface_t *di, u_int insn, u_int loc)
655 di->di_printaddr(loc + 8);
657 di->di_printf("[r%d", (insn >> 16) & 0x0f);
659 di->di_printf("%s, ", (insn & (1 << 24)) ? "" : "]");
661 di->di_printf("-");
663 di->di_printf("#0x%02x", offset);
665 di->di_printf("r%d", (insn & 0x0f));
668 di->di_printf("]");
673 disasm_insn_ldcstc(const disasm_interface_t *di, u_int insn, u_int loc)
676 di->di_printf("f%d, ", (insn >> 12) & 0x07);
678 di->di_printf("c%d, ", (insn >> 12) & 0x0f);
680 di->di_printf("[r%d", (insn >> 16) & 0x0f);
682 di->di_printf("%s, ", (insn & (1 << 24)) ? "" : "]");
685 di->di_printf("-");
687 di->di_printf("#0x%03x", (insn & 0xff) << 2);
690 di->di_printf("]");
693 di->di_printf("!");