Lines Matching refs:dalt

60 #define DALT_DEFAULT(dalt)	(!(dalt)->alt)  argument
61 #define DALT_INSN(dalt) (DALT_DEFAULT(dalt) ? (dalt)->orig_insn : (dalt)->alt->insn) argument
62 #define DALT_GROUP(dalt) (DALT_INSN(dalt)->alt_group) argument
63 #define DALT_ALTID(dalt) ((dalt)->orig_insn->offset) argument
720 static int disas_alt_init(struct disas_alt *dalt, in disas_alt_init() argument
724 dalt->orig_insn = orig_insn; in disas_alt_init()
725 dalt->alt = alt; in disas_alt_init()
726 dalt->insn_idx = 0; in disas_alt_init()
727 dalt->name = alt ? disas_alt_name(alt) : strdup("DEFAULT"); in disas_alt_init()
728 if (!dalt->name) in disas_alt_init()
730 dalt->width = strlen(dalt->name); in disas_alt_init()
735 static int disas_alt_add_insn(struct disas_alt *dalt, int index, char *insn_str, in disas_alt_add_insn() argument
742 DALT_ALTID(dalt), dalt->name); in disas_alt_add_insn()
747 dalt->insn[index].str = insn_str; in disas_alt_add_insn()
748 dalt->insn[index].offset = offset; in disas_alt_add_insn()
749 dalt->insn[index].nops = nops; in disas_alt_add_insn()
750 if (len > dalt->width) in disas_alt_add_insn()
751 dalt->width = len; in disas_alt_add_insn()
756 static int disas_alt_jump(struct disas_alt *dalt) in disas_alt_jump() argument
764 orig_insn = dalt->orig_insn; in disas_alt_jump()
765 dest_insn = dalt->alt->insn; in disas_alt_jump()
782 disas_alt_add_insn(dalt, 0, str, 0, nops); in disas_alt_jump()
790 static int disas_alt_extable(struct disas_alt *dalt) in disas_alt_extable() argument
795 alt_insn = dalt->alt->insn; in disas_alt_extable()
802 disas_alt_add_insn(dalt, 0, str, 0, 0); in disas_alt_extable()
811 static int disas_alt_group(struct disas_context *dctx, struct disas_alt *dalt) in disas_alt_group() argument
826 alt_for_each_insn(file, DALT_GROUP(dalt), insn) { in disas_alt_group()
834 err = disas_alt_add_insn(dalt, count, str, offset, nops); in disas_alt_group()
847 static int disas_alt_default(struct disas_context *dctx, struct disas_alt *dalt) in disas_alt_default() argument
853 if (DALT_GROUP(dalt)) in disas_alt_default()
854 return disas_alt_group(dctx, dalt); in disas_alt_default()
862 disas_insn(dctx, dalt->orig_insn); in disas_alt_default()
866 nops = dalt->orig_insn->type == INSN_NOP ? dalt->orig_insn->len : 0; in disas_alt_default()
867 err = disas_alt_add_insn(dalt, 0, str, 0, nops); in disas_alt_default()
885 struct disas_alt *dalt; in disas_alt_print_insn() local
893 dalt = &dalts[i]; in disas_alt_print_insn()
894 j = dalt->insn_idx; in disas_alt_print_insn()
896 printf("| %-*s ", dalt->width, ""); in disas_alt_print_insn()
900 if (dalt->insn[j].offset == offset) { in disas_alt_print_insn()
901 str = dalt->insn[j].str; in disas_alt_print_insn()
902 printf("| %-*s ", dalt->width, str ?: ""); in disas_alt_print_insn()
904 dalt->insn_idx = j; in disas_alt_print_insn()
906 dalt->insn_idx = -1; in disas_alt_print_insn()
910 printf("| %-*s ", dalt->width, ""); in disas_alt_print_insn()
913 if (dalt->insn[j].offset > 0 && in disas_alt_print_insn()
915 (dalt->insn[j].offset < offset_next))) in disas_alt_print_insn()
916 offset_next = dalt->insn[j].offset; in disas_alt_print_insn()
1023 struct disas_alt *dalt; in disas_alt_trim_nops() local
1036 dalt = &dalts[i]; in disas_alt_trim_nops()
1038 if (!dalt->insn[j].str || !dalt->insn[j].nops) in disas_alt_trim_nops()
1040 offset = dalt->insn[j].offset; in disas_alt_trim_nops()
1041 free(dalt->insn[j].str); in disas_alt_trim_nops()
1042 dalt->insn[j].offset = 0; in disas_alt_trim_nops()
1043 dalt->insn[j].str = NULL; in disas_alt_trim_nops()
1044 nops += dalt->insn[j].nops; in disas_alt_trim_nops()
1056 dalt->insn[j + 1].str = strfmt("nop%s%d", s, nops); in disas_alt_trim_nops()
1057 dalt->insn[j + 1].offset = offset; in disas_alt_trim_nops()
1058 dalt->insn[j + 1].nops = nops; in disas_alt_trim_nops()
1082 struct disas_alt *dalt; in disas_alt() local
1123 dalt = &dalts[i]; in disas_alt()
1124 err = disas_alt_init(dalt, orig_insn, alt); in disas_alt()
1131 switch (dalt->alt->type) { in disas_alt()
1133 count = disas_alt_group(dctx, dalt); in disas_alt()
1136 count = disas_alt_extable(dalt); in disas_alt()
1139 count = disas_alt_jump(dalt); in disas_alt()
1144 alt_name, dalt->name); in disas_alt()