Lines Matching refs:dl

667 static void disasm_line__init_ins(struct disasm_line *dl)  in disasm_line__init_ins()  argument
669 dl->ins = ins__find(dl->name); in disasm_line__init_ins()
671 if (dl->ins == NULL) in disasm_line__init_ins()
674 if (!dl->ins->ops) in disasm_line__init_ins()
677 if (dl->ins->ops->parse && dl->ins->ops->parse(&dl->ops) < 0) in disasm_line__init_ins()
678 dl->ins = NULL; in disasm_line__init_ins()
721 struct disasm_line *dl = zalloc(sizeof(*dl) + privsize); in disasm_line__new() local
723 if (dl != NULL) { in disasm_line__new()
724 dl->offset = offset; in disasm_line__new()
725 dl->line = strdup(line); in disasm_line__new()
726 dl->line_nr = line_nr; in disasm_line__new()
727 if (dl->line == NULL) in disasm_line__new()
731 if (disasm_line__parse(dl->line, &dl->name, &dl->ops.raw) < 0) in disasm_line__new()
734 disasm_line__init_ins(dl); in disasm_line__new()
738 return dl; in disasm_line__new()
741 zfree(&dl->line); in disasm_line__new()
743 free(dl); in disasm_line__new()
747 void disasm_line__free(struct disasm_line *dl) in disasm_line__free() argument
749 zfree(&dl->line); in disasm_line__free()
750 zfree(&dl->name); in disasm_line__free()
751 if (dl->ins && dl->ins->ops->free) in disasm_line__free()
752 dl->ins->ops->free(&dl->ops); in disasm_line__free()
754 ins__delete(&dl->ops); in disasm_line__free()
755 free(dl); in disasm_line__free()
758 int disasm_line__scnprintf(struct disasm_line *dl, char *bf, size_t size, bool raw) in disasm_line__scnprintf() argument
760 if (raw || !dl->ins) in disasm_line__scnprintf()
761 return scnprintf(bf, size, "%-6.6s %s", dl->name, dl->ops.raw); in disasm_line__scnprintf()
763 return ins__scnprintf(dl->ins, bf, size, &dl->ops); in disasm_line__scnprintf()
818 static int disasm_line__print(struct disasm_line *dl, struct symbol *sym, u64 start, in disasm_line__print() argument
825 if (dl->offset != -1) { in disasm_line__print()
834 s64 offset = dl->offset; in disasm_line__print()
838 next = disasm__get_next_ip_line(&notes->src->source, dl); in disasm_line__print()
870 if (queue == dl) in disasm_line__print()
907 color_fprintf(stdout, PERF_COLOR_BLUE, "%s\n", dl->line); in disasm_line__print()
926 if (!*dl->line) in disasm_line__print()
929 printf(" %*s: %s\n", width, " ", dl->line); in disasm_line__print()
960 struct disasm_line *dl; in symbol__parse_objdump_line() local
1018 dl = disasm_line__new(offset, parsed_line, privsize, *line_nr); in symbol__parse_objdump_line()
1022 if (dl == NULL) in symbol__parse_objdump_line()
1025 if (dl->ops.target.offset == UINT64_MAX) in symbol__parse_objdump_line()
1026 dl->ops.target.offset = dl->ops.target.addr - in symbol__parse_objdump_line()
1030 if (dl->ins && ins__is_call(dl->ins) && !dl->ops.target.name) { in symbol__parse_objdump_line()
1033 .addr = dl->ops.target.addr, in symbol__parse_objdump_line()
1038 dl->ops.target.name = strdup(target.sym->name); in symbol__parse_objdump_line()
1041 disasm__add(&notes->src->source, dl); in symbol__parse_objdump_line()
1055 struct disasm_line *dl; in delete_last_nop() local
1058 dl = list_entry(list->prev, struct disasm_line, node); in delete_last_nop()
1060 if (dl->ins && dl->ins->ops) { in delete_last_nop()
1061 if (dl->ins->ops != &nop_ops) in delete_last_nop()
1064 if (!strstr(dl->line, " nop ") && in delete_last_nop()
1065 !strstr(dl->line, " nopl ") && in delete_last_nop()
1066 !strstr(dl->line, " nopw ")) in delete_last_nop()
1070 list_del(&dl->node); in delete_last_nop()
1071 disasm_line__free(dl); in delete_last_nop()
1581 static size_t disasm_line__fprintf(struct disasm_line *dl, FILE *fp) in disasm_line__fprintf() argument
1585 if (dl->offset == -1) in disasm_line__fprintf()
1586 return fprintf(fp, "%s\n", dl->line); in disasm_line__fprintf()
1588 printed = fprintf(fp, "%#" PRIx64 " %s", dl->offset, dl->name); in disasm_line__fprintf()
1590 if (dl->ops.raw[0] != '\0') { in disasm_line__fprintf()
1592 dl->ops.raw); in disasm_line__fprintf()