MCPcopy Create free account
hub / github.com/F-Stack/f-stack / disasm_print_reglist

Function disasm_print_reglist

freebsd/arm/arm/disassem.c:550–583  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

548}
549
550static void
551disasm_print_reglist(const disasm_interface_t *di, u_int insn)
552{
553 int loop;
554 int start;
555 int comma;
556
557 di->di_printf("{");
558 start = -1;
559 comma = 0;
560
561 for (loop = 0; loop < 17; ++loop) {
562 if (start != -1) {
563 if (loop == 16 || !(insn & (1 << loop))) {
564 if (comma)
565 di->di_printf(", ");
566 else
567 comma = 1;
568 if (start == loop - 1)
569 di->di_printf("r%d", start);
570 else
571 di->di_printf("r%d-r%d", start, loop - 1);
572 start = -1;
573 }
574 } else {
575 if (insn & (1 << loop))
576 start = loop;
577 }
578 }
579 di->di_printf("}");
580
581 if (insn & (1 << 22))
582 di->di_printf("^");
583}
584
585static void
586disasm_insn_ldrstr(const disasm_interface_t *di, u_int insn, u_int loc)

Callers 1

disasmFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected