Lines Matching refs:insn

22 struct insn {  struct
44 struct insn *insn; argument
154 struct insn insn; in read_instructions() local
158 rc = scanf("%s %s %s", insn.opcode, insn.name, insn.format); in read_instructions()
163 insn.type = insn_format_to_type(insn.format); in read_instructions()
164 insn.name_len = strlen(insn.name); in read_instructions()
165 for (i = 0; i <= insn.name_len; i++) in read_instructions()
166 insn.upper[i] = toupper((unsigned char)insn.name[i]); in read_instructions()
168 desc->insn = realloc(desc->insn, desc->nr * sizeof(*desc->insn)); in read_instructions()
169 if (!desc->insn) in read_instructions()
171 desc->insn[desc->nr - 1] = insn; in read_instructions()
177 return strcmp(((struct insn *)a)->format, ((struct insn *)b)->format); in cmpformat()
185 qsort(desc->insn, desc->nr, sizeof(*desc->insn), cmpformat); in print_formats()
190 if (!strcmp(format, desc->insn[i].format)) in print_formats()
193 format = desc->insn[i].format; in print_formats()
201 return strcmp(((struct insn *)a)->name, ((struct insn *)b)->name); in cmp_long_insn()
217 struct insn *insn; in print_long_insn() local
220 qsort(desc->insn, desc->nr, sizeof(*desc->insn), cmp_long_insn); in print_long_insn()
224 insn = &desc->insn[i]; in print_long_insn()
225 if (insn->name_len < 6) in print_long_insn()
227 printf("\tLONG_INSN_%s,\n", insn->upper); in print_long_insn()
234 insn = &desc->insn[i]; in print_long_insn()
235 if (insn->name_len < 6) in print_long_insn()
237 printf("\t[LONG_INSN_%s] = ", insn->upper); in print_long_insn()
238 print_insn_name(insn->name); in print_long_insn()
244 static void print_opcode(struct insn *insn, int nr) in print_opcode() argument
248 opcode = insn->opcode; in print_opcode()
249 if (insn->type->byte != 0) in print_opcode()
251 printf("\t[%4d] = { .opfrag = 0x%s, .format = INSTR_%s, ", nr, opcode, insn->format); in print_opcode()
252 if (insn->name_len < 6) { in print_opcode()
254 print_insn_name(insn->name); in print_opcode()
256 printf(".offset = LONG_INSN_%s", insn->upper); in print_opcode()
261 static void add_to_group(struct gen_opcode *desc, struct insn *insn, int offset) in add_to_group() argument
266 if (group && (!strncmp(group->opcode, insn->opcode, 2) || group->type->byte == 0)) { in add_to_group()
275 memcpy(group->opcode, insn->opcode, 2); in add_to_group()
276 group->type = insn->type; in add_to_group()
283 return strcmp(((struct insn *)a)->opcode, ((struct insn *)b)->opcode); in cmpopcode()
289 struct insn *insn; in print_opcode_table() local
292 qsort(desc->insn, desc->nr, sizeof(*desc->insn), cmpopcode); in print_opcode_table()
296 insn = &desc->insn[i]; in print_opcode_table()
297 if (insn->type->byte == 0) in print_opcode_table()
299 add_to_group(desc, insn, offset); in print_opcode_table()
300 if (strncmp(opcode, insn->opcode, 2)) { in print_opcode_table()
301 memcpy(opcode, insn->opcode, 2); in print_opcode_table()
304 print_opcode(insn, offset); in print_opcode_table()
309 insn = &desc->insn[i]; in print_opcode_table()
310 if (insn->type->byte != 0) in print_opcode_table()
312 add_to_group(desc, insn, offset); in print_opcode_table()
313 print_opcode(insn, offset); in print_opcode_table()