Lines Matching refs:dl
536 static void disasm_line__init_ins(struct disasm_line *dl) in disasm_line__init_ins() argument
538 dl->ins = ins__find(dl->name); in disasm_line__init_ins()
540 if (dl->ins == NULL) in disasm_line__init_ins()
543 if (!dl->ins->ops) in disasm_line__init_ins()
546 if (dl->ins->ops->parse && dl->ins->ops->parse(&dl->ops) < 0) in disasm_line__init_ins()
547 dl->ins = NULL; in disasm_line__init_ins()
590 struct disasm_line *dl = zalloc(sizeof(*dl) + privsize); in disasm_line__new() local
592 if (dl != NULL) { in disasm_line__new()
593 dl->offset = offset; in disasm_line__new()
594 dl->line = strdup(line); in disasm_line__new()
595 dl->line_nr = line_nr; in disasm_line__new()
596 if (dl->line == NULL) in disasm_line__new()
600 if (disasm_line__parse(dl->line, &dl->name, &dl->ops.raw) < 0) in disasm_line__new()
603 disasm_line__init_ins(dl); in disasm_line__new()
607 return dl; in disasm_line__new()
610 zfree(&dl->line); in disasm_line__new()
612 free(dl); in disasm_line__new()
616 void disasm_line__free(struct disasm_line *dl) in disasm_line__free() argument
618 zfree(&dl->line); in disasm_line__free()
619 zfree(&dl->name); in disasm_line__free()
620 if (dl->ins && dl->ins->ops->free) in disasm_line__free()
621 dl->ins->ops->free(&dl->ops); in disasm_line__free()
623 ins__delete(&dl->ops); in disasm_line__free()
624 free(dl); in disasm_line__free()
627 int disasm_line__scnprintf(struct disasm_line *dl, char *bf, size_t size, bool raw) in disasm_line__scnprintf() argument
629 if (raw || !dl->ins) in disasm_line__scnprintf()
630 return scnprintf(bf, size, "%-6.6s %s", dl->name, dl->ops.raw); in disasm_line__scnprintf()
632 return ins__scnprintf(dl->ins, bf, size, &dl->ops); in disasm_line__scnprintf()
683 static int disasm_line__print(struct disasm_line *dl, struct symbol *sym, u64 start, in disasm_line__print() argument
690 if (dl->offset != -1) { in disasm_line__print()
697 s64 offset = dl->offset; in disasm_line__print()
701 next = disasm__get_next_ip_line(¬es->src->source, dl); in disasm_line__print()
730 if (queue == dl) in disasm_line__print()
761 color_fprintf(stdout, PERF_COLOR_BLUE, "%s\n", dl->line); in disasm_line__print()
777 if (!*dl->line) in disasm_line__print()
780 printf(" %*s: %s\n", width, " ", dl->line); in disasm_line__print()
811 struct disasm_line *dl; in symbol__parse_objdump_line() local
869 dl = disasm_line__new(offset, parsed_line, privsize, *line_nr); in symbol__parse_objdump_line()
873 if (dl == NULL) in symbol__parse_objdump_line()
876 if (dl->ops.target.offset == UINT64_MAX) in symbol__parse_objdump_line()
877 dl->ops.target.offset = dl->ops.target.addr - in symbol__parse_objdump_line()
881 if (dl->ins && ins__is_call(dl->ins) && !dl->ops.target.name) { in symbol__parse_objdump_line()
884 .addr = dl->ops.target.addr, in symbol__parse_objdump_line()
889 dl->ops.target.name = strdup(target.sym->name); in symbol__parse_objdump_line()
892 disasm__add(¬es->src->source, dl); in symbol__parse_objdump_line()
906 struct disasm_line *dl; in delete_last_nop() local
909 dl = list_entry(list->prev, struct disasm_line, node); in delete_last_nop()
911 if (dl->ins && dl->ins->ops) { in delete_last_nop()
912 if (dl->ins->ops != &nop_ops) in delete_last_nop()
915 if (!strstr(dl->line, " nop ") && in delete_last_nop()
916 !strstr(dl->line, " nopl ") && in delete_last_nop()
917 !strstr(dl->line, " nopw ")) in delete_last_nop()
921 list_del(&dl->node); in delete_last_nop()
922 disasm_line__free(dl); in delete_last_nop()
1415 static size_t disasm_line__fprintf(struct disasm_line *dl, FILE *fp) in disasm_line__fprintf() argument
1419 if (dl->offset == -1) in disasm_line__fprintf()
1420 return fprintf(fp, "%s\n", dl->line); in disasm_line__fprintf()
1422 printed = fprintf(fp, "%#" PRIx64 " %s", dl->offset, dl->name); in disasm_line__fprintf()
1424 if (dl->ops.raw[0] != '\0') { in disasm_line__fprintf()
1426 dl->ops.raw); in disasm_line__fprintf()