Lines Matching refs:instr_data

148   instr_data_s instr_data;  in print_insn_z8k()  local
150 info->private_data = (PTR) &instr_data; in print_insn_z8k()
151 instr_data.max_fetched = 0; in print_insn_z8k()
152 instr_data.insn_start = addr; in print_insn_z8k()
153 if (setjmp (instr_data.bailout) != 0) in print_insn_z8k()
161 instr_data.tabl_index = z8k_lookup_instr (instr_data.nibbles, info); in print_insn_z8k()
162 if (instr_data.tabl_index >= 0) in print_insn_z8k()
164 unpack_instr (&instr_data, is_segmented, info); in print_insn_z8k()
165 unparse_instr (&instr_data, is_segmented); in print_insn_z8k()
166 output_instr (&instr_data, addr, info); in print_insn_z8k()
167 return z8k_table[instr_data.tabl_index].length + seg_length; in print_insn_z8k()
173 instr_data.bytes[0], instr_data.bytes[2]); in print_insn_z8k()
281 output_instr (instr_data_s *instr_data, in output_instr() argument
290 num_bytes = (z8k_table[instr_data->tabl_index].length + seg_length) * 2; in output_instr()
293 strcat (out_str, instr_data->instr_asmsrc); in output_instr()
299 unpack_instr (instr_data_s *instr_data, int is_segmented, disassemble_info *info) in unpack_instr() argument
311 while (z8k_table[instr_data->tabl_index].byte_info[loop] != 0) in unpack_instr()
314 instr_nibl = instr_data->nibbles[nibl_count]; in unpack_instr()
315 instr_byte = instr_data->bytes[nibl_count & ~1]; in unpack_instr()
316 instr_word = instr_data->words[nibl_count & ~3]; in unpack_instr()
318 tabl_datum = z8k_table[instr_data->tabl_index].byte_info[loop]; in unpack_instr()
328 instr_data->displacement = instr_data->insn_start + 4 in unpack_instr()
335 instr_data->displacement = instr_data->insn_start + 2 in unpack_instr()
338 instr_data->displacement = instr_data->insn_start + 2 in unpack_instr()
351 instr_data->immediate = instr_nibl; in unpack_instr()
354 instr_data->immediate = (- instr_nibl) & 0xf; in unpack_instr()
357 instr_data->immediate = (- instr_byte) & 0xff; in unpack_instr()
361 instr_data->immediate = instr_byte; in unpack_instr()
365 instr_data->immediate = instr_word; in unpack_instr()
370 instr_long = (instr_data->words[nibl_count] << 16) in unpack_instr()
371 | (instr_data->words[nibl_count + 4]); in unpack_instr()
372 instr_data->immediate = instr_long; in unpack_instr()
376 instr_data->immediate = instr_nibl - 1; in unpack_instr()
379 instr_data->immediate = instr_nibl + 1; in unpack_instr()
382 instr_data->immediate = 1; in unpack_instr()
385 instr_data->immediate = 2; in unpack_instr()
388 instr_data->immediate = instr_nibl & 0x3; in unpack_instr()
395 instr_data->cond_code = instr_nibl; in unpack_instr()
403 instr_long = (instr_data->words[nibl_count] << 16) in unpack_instr()
404 | (instr_data->words[nibl_count + 4]); in unpack_instr()
405 instr_data->address = ((instr_word & 0x7f00) << 16) in unpack_instr()
412 instr_data->address = ((instr_word & 0x7f00) << 16) in unpack_instr()
419 instr_data->address = instr_word; in unpack_instr()
425 instr_data->ctrl_code = instr_nibl & 0x7; in unpack_instr()
428 instr_data->displacement = in unpack_instr()
429 instr_data->insn_start + 2 - (instr_byte & 0x7f) * 2; in unpack_instr()
433 instr_data->displacement = in unpack_instr()
434 instr_data->insn_start + 2 - (instr_byte & 0x7f) * 2; in unpack_instr()
438 instr_data->interrupts = instr_nibl & 0x3; in unpack_instr()
441 instr_data->interrupts = instr_nibl & 0x3; in unpack_instr()
445 instr_data->ctrl_code = instr_nibl & 0x7; in unpack_instr()
448 instr_data->flags = instr_nibl; in unpack_instr()
451 instr_data->arg_reg[datum_value] = instr_nibl; in unpack_instr()
454 instr_data->arg_reg[datum_value] = instr_nibl; in unpack_instr()
457 instr_data->displacement = in unpack_instr()
458 instr_data->insn_start + 2 + (signed char) instr_byte * 2; in unpack_instr()
462 instr_data->immediate = ((instr_nibl >> 1) & 0x1) + 1; in unpack_instr()
524 unparse_instr (instr_data_s *instr_data, int is_segmented) in unparse_instr() argument
531 sprintf (out_str, "%s\t", z8k_table[instr_data->tabl_index].name); in unparse_instr()
533 loop_limit = z8k_table[instr_data->tabl_index].noperands; in unparse_instr()
539 tabl_datum = z8k_table[instr_data->tabl_index].arg_info[loop]; in unparse_instr()
546 sprintf (tmp_str, "0x%0lx(r%ld)", instr_data->address, in unparse_instr()
547 instr_data->arg_reg[datum_value]); in unparse_instr()
552 sprintf (tmp_str, "rr%ld(#0x%lx)", instr_data->arg_reg[datum_value], in unparse_instr()
553 instr_data->immediate); in unparse_instr()
555 sprintf (tmp_str, "r%ld(#0x%lx)", instr_data->arg_reg[datum_value], in unparse_instr()
556 instr_data->immediate); in unparse_instr()
561 sprintf (tmp_str, "rr%ld(r%ld)", instr_data->arg_reg[datum_value], in unparse_instr()
562 instr_data->arg_reg[ARG_RX]); in unparse_instr()
564 sprintf (tmp_str, "r%ld(r%ld)", instr_data->arg_reg[datum_value], in unparse_instr()
565 instr_data->arg_reg[ARG_RX]); in unparse_instr()
569 sprintf (tmp_str, "0x%0lx", instr_data->displacement); in unparse_instr()
575 print_intr (tmp_str, instr_data->interrupts); in unparse_instr()
579 sprintf (tmp_str, "#0x%0lx", instr_data->immediate); in unparse_instr()
583 sprintf (tmp_str, "%s", codes[instr_data->cond_code]); in unparse_instr()
587 sprintf (tmp_str, "%s", ctrl_names[instr_data->ctrl_code]); in unparse_instr()
592 sprintf (tmp_str, "0x%0lx", instr_data->address); in unparse_instr()
597 sprintf (tmp_str, "@rr%ld", instr_data->arg_reg[datum_value]); in unparse_instr()
599 sprintf (tmp_str, "@r%ld", instr_data->arg_reg[datum_value]); in unparse_instr()
603 sprintf (tmp_str, "@r%ld", instr_data->arg_reg[datum_value]); in unparse_instr()
607 print_flags(tmp_str, instr_data->flags); in unparse_instr()
611 if (instr_data->arg_reg[datum_value] >= 0x8) in unparse_instr()
613 instr_data->arg_reg[datum_value] - 0x8); in unparse_instr()
615 sprintf (tmp_str, "rh%ld", instr_data->arg_reg[datum_value]); in unparse_instr()
619 sprintf (tmp_str, "r%ld", instr_data->arg_reg[datum_value]); in unparse_instr()
623 sprintf (tmp_str, "rq%ld", instr_data->arg_reg[datum_value]); in unparse_instr()
627 sprintf (tmp_str, "rr%ld", instr_data->arg_reg[datum_value]); in unparse_instr()
632 sprintf (tmp_str, "rr%ld", instr_data->arg_reg[datum_value]); in unparse_instr()
634 sprintf (tmp_str, "r%ld", instr_data->arg_reg[datum_value]); in unparse_instr()
643 strcpy (instr_data->instr_asmsrc, out_str); in unparse_instr()