Home | History | Annotate | Download | only in opcodes

Lines Matching full:instr_data

147   instr_data_s instr_data;
149 info->private_data = (PTR) &instr_data;
150 instr_data.max_fetched = 0;
151 instr_data.insn_start = addr;
152 if (OPCODES_SIGSETJMP (instr_data.bailout) != 0)
160 instr_data.tabl_index = z8k_lookup_instr (instr_data.nibbles, info);
161 if (instr_data.tabl_index >= 0)
163 unpack_instr (&instr_data, is_segmented, info);
164 unparse_instr (&instr_data, is_segmented);
165 output_instr (&instr_data, addr, info);
166 return z8k_table[instr_data.tabl_index].length + seg_length;
172 instr_data.bytes[0], instr_data.bytes[2]);
280 output_instr (instr_data_s *instr_data,
289 num_bytes = (z8k_table[instr_data->tabl_index].length + seg_length) * 2;
292 strcat (out_str, instr_data->instr_asmsrc);
298 unpack_instr (instr_data_s *instr_data, int is_segmented, disassemble_info *info)
310 while (z8k_table[instr_data->tabl_index].byte_info[loop] != 0)
313 instr_nibl = instr_data->nibbles[nibl_count];
314 instr_byte = instr_data->bytes[nibl_count & ~1];
315 instr_word = instr_data->words[nibl_count & ~3];
317 tabl_datum = z8k_table[instr_data->tabl_index].byte_info[loop];
327 instr_data->displacement = instr_data->insn_start + 4
334 instr_data->displacement = instr_data->insn_start + 2
337 instr_data->displacement = instr_data->insn_start + 2
350 instr_data->immediate = instr_nibl;
353 instr_data->immediate = (- instr_nibl) & 0xf;
356 instr_data->immediate = (- instr_byte) & 0xff;
360 instr_data->immediate = instr_byte;
364 instr_data->immediate = instr_word;
369 instr_long = (instr_data->words[nibl_count] << 16)
370 | (instr_data->words[nibl_count + 4]);
371 instr_data->immediate = instr_long;
375 instr_data->immediate = instr_nibl - 1;
378 instr_data->immediate = instr_nibl + 1;
381 instr_data->immediate = 1;
384 instr_data->immediate = 2;
387 instr_data->immediate = instr_nibl & 0x3;
394 instr_data->cond_code = instr_nibl;
402 instr_long = (instr_data->words[nibl_count] << 16)
403 | (instr_data->words[nibl_count + 4]);
404 instr_data->address = ((instr_word & 0x7f00) << 16)
411 instr_data->address = ((instr_word & 0x7f00) << 16)
418 instr_data->address = instr_word;
424 instr_data->ctrl_code = instr_nibl & 0x7;
427 instr_data->displacement =
428 instr_data->insn_start + 2 - (instr_byte & 0x7f) * 2;
432 instr_data->displacement =
433 instr_data->insn_start + 2 - (instr_byte & 0x7f) * 2;
437 instr_data->interrupts = instr_nibl & 0x3;
440 instr_data->interrupts = instr_nibl & 0x3;
444 instr_data->ctrl_code = instr_nibl & 0x7;
447 instr_data->flags = instr_nibl;
450 instr_data->arg_reg[datum_value] = instr_nibl;
453 instr_data->arg_reg[datum_value] = instr_nibl;
456 instr_data->displacement =
457 instr_data->insn_start + 2 + (signed char) instr_byte * 2;
461 instr_data->immediate = ((instr_nibl >> 1) & 0x1) + 1;
523 unparse_instr (instr_data_s *instr_data, int is_segmented)
530 sprintf (out_str, "%s\t", z8k_table[instr_data->tabl_index].name);
532 loop_limit = z8k_table[instr_data->tabl_index].noperands;
538 tabl_datum = z8k_table[instr_data->tabl_index].arg_info[loop];
545 sprintf (tmp_str, "0x%0lx(r%ld)", instr_data->address,
546 instr_data->arg_reg[datum_value]);
551 sprintf (tmp_str, "rr%ld(#0x%lx)", instr_data->arg_reg[datum_value],
552 instr_data->immediate);
554 sprintf (tmp_str, "r%ld(#0x%lx)", instr_data->arg_reg[datum_value],
555 instr_data->immediate);
560 sprintf (tmp_str, "rr%ld(r%ld)", instr_data->arg_reg[datum_value],
561 instr_data->arg_reg[ARG_RX]);
563 sprintf (tmp_str, "r%ld(r%ld)", instr_data->arg_reg[datum_value],
564 instr_data->arg_reg[ARG_RX]);
568 sprintf (tmp_str, "0x%0lx", instr_data->displacement);
574 print_intr (tmp_str, instr_data->interrupts);
578 sprintf (tmp_str, "#0x%0lx", instr_data->immediate);
582 sprintf (tmp_str, "%s", codes[instr_data->cond_code]);
586 sprintf (tmp_str, "%s", ctrl_names[instr_data->ctrl_code]);
591 sprintf (tmp_str, "0x%0lx", instr_data->address);
596 sprintf (tmp_str, "@rr%ld", instr_data->arg_reg[datum_value]);
598 sprintf (tmp_str, "@r%ld", instr_data->arg_reg[datum_value]);
602 sprintf (tmp_str, "@r%ld", instr_data->arg_reg[datum_value]);
606 print_flags(tmp_str, instr_data->flags);
610 if (instr_data->arg_reg[datum_value] >= 0x8)
612 instr_data->arg_reg[datum_value] - 0x8);
614 sprintf (tmp_str, "rh%ld", instr_data->arg_reg[datum_value]);
618 sprintf (tmp_str, "r%ld", instr_data->arg_reg[datum_value]);
622 sprintf (tmp_str, "rq%ld", instr_data->arg_reg[datum_value]);
626 sprintf (tmp_str, "rr%ld", instr_data->arg_reg[datum_value]);
631 sprintf (tmp_str, "rr%ld", instr_data->arg_reg[datum_value]);
633 sprintf (tmp_str, "r%ld", instr_data->arg_reg[datum_value]);
642 strcpy (instr_data->instr_asmsrc, out_str);