Lines Matching refs:ins

28 static struct ins *ins__find(const char *name);
41 static int ins__raw_scnprintf(struct ins *ins, char *bf, size_t size, in ins__raw_scnprintf() argument
44 return scnprintf(bf, size, "%-6.6s %s", ins->name, ops->raw); in ins__raw_scnprintf()
47 int ins__scnprintf(struct ins *ins, char *bf, size_t size, in ins__scnprintf() argument
50 if (ins->ops->scnprintf) in ins__scnprintf()
51 return ins->ops->scnprintf(ins, bf, size, ops); in ins__scnprintf()
53 return ins__raw_scnprintf(ins, bf, size, ops); in ins__scnprintf()
93 static int call__scnprintf(struct ins *ins, char *bf, size_t size, in call__scnprintf() argument
97 return scnprintf(bf, size, "%-6.6s %s", ins->name, ops->target.name); in call__scnprintf()
100 return ins__raw_scnprintf(ins, bf, size, ops); in call__scnprintf()
102 return scnprintf(bf, size, "%-6.6s *%" PRIx64, ins->name, ops->target.addr); in call__scnprintf()
110 bool ins__is_call(const struct ins *ins) in ins__is_call() argument
112 return ins->ops == &call_ops; in ins__is_call()
129 static int jump__scnprintf(struct ins *ins, char *bf, size_t size, in jump__scnprintf() argument
132 return scnprintf(bf, size, "%-6.6s %" PRIx64, ins->name, ops->target.offset); in jump__scnprintf()
140 bool ins__is_jump(const struct ins *ins) in ins__is_jump() argument
142 return ins->ops == &jump_ops; in ins__is_jump()
181 ops->locked.ins = ins__find(name); in lock__parse()
184 if (ops->locked.ins == NULL) in lock__parse()
187 if (!ops->locked.ins->ops) in lock__parse()
190 if (ops->locked.ins->ops->parse && in lock__parse()
191 ops->locked.ins->ops->parse(ops->locked.ops) < 0) in lock__parse()
201 static int lock__scnprintf(struct ins *ins, char *bf, size_t size, in lock__scnprintf() argument
206 if (ops->locked.ins == NULL) in lock__scnprintf()
207 return ins__raw_scnprintf(ins, bf, size, ops); in lock__scnprintf()
209 printed = scnprintf(bf, size, "%-6.6s ", ins->name); in lock__scnprintf()
210 return printed + ins__scnprintf(ops->locked.ins, bf + printed, in lock__scnprintf()
216 struct ins *ins = ops->locked.ins; in lock__delete() local
218 if (ins && ins->ops->free) in lock__delete()
219 ins->ops->free(ops->locked.ops); in lock__delete()
284 static int mov__scnprintf(struct ins *ins, char *bf, size_t size, in mov__scnprintf() argument
287 return scnprintf(bf, size, "%-6.6s %s,%s", ins->name, in mov__scnprintf()
326 static int dec__scnprintf(struct ins *ins, char *bf, size_t size, in dec__scnprintf() argument
329 return scnprintf(bf, size, "%-6.6s %s", ins->name, in dec__scnprintf()
338 static int nop__scnprintf(struct ins *ins __maybe_unused, char *bf, size_t size, in nop__scnprintf()
351 static struct ins instructions[] = {
431 const struct ins *ins = insp; in ins__cmp() local
433 return strcmp(name, ins->name); in ins__cmp()
436 static struct ins *ins__find(const char *name) in ins__find()
440 return bsearch(name, instructions, nmemb, sizeof(struct ins), ins__cmp); in ins__find()
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()
751 if (dl->ins && dl->ins->ops->free) in disasm_line__free()
752 dl->ins->ops->free(&dl->ops); in disasm_line__free()
760 if (raw || !dl->ins) in disasm_line__scnprintf()
763 return ins__scnprintf(dl->ins, bf, size, &dl->ops); in disasm_line__scnprintf()
1030 if (dl->ins && ins__is_call(dl->ins) && !dl->ops.target.name) { in symbol__parse_objdump_line()
1060 if (dl->ins && dl->ins->ops) { in delete_last_nop()
1061 if (dl->ins->ops != &nop_ops) in delete_last_nop()