Lines Matching refs:dinfo
928 nfp_me_print_invalid (uint64_t instr, struct disassemble_info *dinfo)
931 dinfo->fprintf_func (dinfo->stream, "%s 0x%" PRIx64, err_msg, instr);
965 struct disassemble_info *dinfo)
971 dinfo->fprintf_func (dinfo->stream, "@gpr%c_%d", bank, _BF (opnd, 6, 0));
975 dinfo->fprintf_func (dinfo->stream, "gpr%c_%d", bank, n);
980 dinfo->fprintf_func (dinfo->stream, "*$index");
982 dinfo->fprintf_func (dinfo->stream, "++");
984 dinfo->fprintf_func (dinfo->stream, "--");
992 dinfo->fprintf_func (dinfo->stream, "$xfer_%d", n);
998 dinfo->fprintf_func (dinfo->stream, "*n$index");
1000 dinfo->fprintf_func (dinfo->stream, "++");
1006 dinfo->fprintf_func (dinfo->stream, "n$reg_%d", n);
1013 dinfo->fprintf_func (dinfo->stream, "*l$index%d", n);
1015 dinfo->fprintf_func (dinfo->stream, _BTST (opnd, 0) ? "--" : "++");
1017 dinfo->fprintf_func (dinfo->stream, "[%d]", _BF (opnd, 3, 0));
1022 dinfo->fprintf_func (dinfo->stream, "0x%x", _BF (opnd, 7, 0));
1026 dinfo->fprintf_func (dinfo->stream, "<opnd:0x%x>", opnd);
1038 unsigned int imm8_msb, struct disassemble_info *dinfo)
1044 dinfo->fprintf_func (dinfo->stream, "gpr%c_%d", bank, n);
1048 dinfo->fprintf_func (dinfo->stream, "$xfer_%d", n);
1054 dinfo->fprintf_func (dinfo->stream, "$xfer_%d", n);
1060 dinfo->fprintf_func (dinfo->stream, "*$index");
1062 dinfo->fprintf_func (dinfo->stream, "++");
1064 dinfo->fprintf_func (dinfo->stream, "--");
1070 dinfo->fprintf_func (dinfo->stream, "*n$index");
1072 dinfo->fprintf_func (dinfo->stream, "++");
1079 dinfo->fprintf_func (dinfo->stream, "*l$index%d", n);
1081 dinfo->fprintf_func (dinfo->stream, "[%d]", _BF (opnd, 2, 0));
1088 dinfo->fprintf_func (dinfo->stream, "0x%x", n);
1093 dinfo->fprintf_func (dinfo->stream, "<opnd:0x%x>", opnd);
1104 int num_ctx, struct disassemble_info *dinfo)
1129 dinfo->fprintf_func (dinfo->stream, "dbl_shf[");
1131 dinfo->fprintf_func (dinfo->stream, "asr[");
1133 dinfo->fprintf_func (dinfo->stream, "alu_shf[");
1137 dinfo->fprintf_func (dinfo->stream, "--");
1140 dst_lmext, imm_msb, dinfo);
1142 dinfo->fprintf_func (dinfo->stream, ", ");
1148 dinfo->fprintf_func (dinfo->stream, "--"); /* B or ~B operator. */
1152 dinfo);
1154 dinfo->fprintf_func (dinfo->stream, ", ");
1159 dinfo->fprintf_func (dinfo->stream, "%s, ",
1166 num_ctx, src_lmext, imm_msb, dinfo);
1168 dinfo->fprintf_func (dinfo->stream, ", ");
1172 dinfo->fprintf_func (dinfo->stream, ">>rot%d", shift);
1176 dinfo->fprintf_func (dinfo->stream, "<<%d", (32 - shift));
1178 dinfo->fprintf_func (dinfo->stream, "<<indirect");
1183 dinfo->fprintf_func (dinfo->stream, ">>%d", shift);
1185 dinfo->fprintf_func (dinfo->stream, ">>indirect");
1191 dinfo->fprintf_func (dinfo->stream, "byte_align_%s[",
1196 dinfo->fprintf_func (dinfo->stream, "--");
1199 dst_lmext, imm_msb, dinfo);
1201 dinfo->fprintf_func (dinfo->stream, ", ");
1205 0, imm_msb, dinfo);
1208 0, imm_msb, dinfo);
1211 dinfo->fprintf_func (dinfo->stream, "]");
1213 dinfo->fprintf_func (dinfo->stream, ", no_cc");
1215 dinfo->fprintf_func (dinfo->stream, ", gpr_wrboth");
1217 dinfo->fprintf_func (dinfo->stream, ", predicate_cc");
1228 int num_ctx, struct disassemble_info *dinfo)
1255 dinfo->fprintf_func (dinfo->stream, "%s[", nfp_me27_28_alu_op[op]);
1262 dinfo->fprintf_func (dinfo->stream, "--");
1265 dst_lmext, dinfo);
1267 dinfo->fprintf_func (dinfo->stream, ", ");
1272 num_ctx, src_lmext, dinfo);
1278 dinfo->fprintf_func (dinfo->stream, "cam_clear");
1284 dinfo->fprintf_func (dinfo->stream, "%s[", nfp_me27_28_alu_op[op]);
1288 dinfo->fprintf_func (dinfo->stream, "--");
1291 dst_lmext, dinfo);
1293 dinfo->fprintf_func (dinfo->stream, ", ");
1297 num_ctx, src_lmext, dinfo);
1299 dinfo->fprintf_func (dinfo->stream, "]");
1306 dinfo->fprintf_func (dinfo->stream, ", lm_addr%d[%d]", n,
1314 dinfo->fprintf_func (dinfo->stream, "%s[", nfp_me27_28_alu_op[op]);
1316 num_ctx, src_lmext, dinfo);
1317 dinfo->fprintf_func (dinfo->stream, ", ");
1321 num_ctx, src_lmext, dinfo);
1322 dinfo->fprintf_func (dinfo->stream, ", ");
1324 dinfo->fprintf_func (dinfo->stream, "%d", (dst & 0xf));
1330 dinfodinfo->stream, "crc_%s[",
1334 dinfo->fprintf_func (dinfo->stream, _(", <invalid CRC operator>, "));
1339 dinfo->fprintf_func (dinfo->stream, "%s, ",
1345 dinfo->fprintf_func (dinfo->stream, "--");
1348 dst_lmext, dinfo);
1350 dinfo->fprintf_func (dinfo->stream, ", ");
1354 num_ctx, src_lmext, dinfo);
1356 dinfo->fprintf_func (dinfo->stream, "]");
1358 dinfo->fprintf_func (dinfo->stream, ", %s",
1361 dinfo->fprintf_func (dinfo->stream, ", bit_swap");
1366 dinfo->fprintf_func (dinfo->stream, "alu[");
1370 dinfo->fprintf_func (dinfo->stream, "--");
1373 dst_lmext, dinfo);
1374 dinfo->fprintf_func (dinfo->stream, ", ");
1378 dinfo->fprintf_func (dinfo->stream, "--");
1381 num_ctx, src_lmext, dinfo);
1385 dinfo->fprintf_func (dinfo->stream, ", <operator:0x%x>, ", op);
1390 dinfo->fprintf_func (dinfo->stream, ", %s, ",
1396 num_ctx, src_lmext, dinfo);
1401 dinfo->fprintf_func (dinfo->stream, "]");
1404 dinfo->fprintf_func (dinfo->stream, ", no_cc");
1406 dinfo->fprintf_func (dinfo->stream, ", gpr_wrboth");
1408 dinfo->fprintf_func (dinfo->stream, ", predicate_cc");
1419 int num_ctx, struct disassemble_info *dinfo)
1435 dinfo->fprintf_func (dinfo->stream, "nop");
1449 dinfo->fprintf_func (dinfo->stream, "immed_b%d[", byte_shift);
1454 dinfo->fprintf_func (dinfo->stream, "immed_w%d[", (byte_shift / 2));
1458 dinfo->fprintf_func (dinfo->stream, "immed[");
1462 dinfo->fprintf_func (dinfo->stream, "--"); /* No Dest. */
1464 err = err || !nfp_me_print_opnd10 (srcB, 'B', num_ctx, dst_lmext, dinfo);
1466 err = err || !nfp_me_print_opnd10 (srcA, 'A', num_ctx, dst_lmext, dinfo);
1468 dinfo->fprintf_func (dinfo->stream, ", 0x%x", imm);
1471 dinfo->fprintf_func (dinfo->stream, ", <<%d", (byte_shift * 8));
1473 dinfo->fprintf_func (dinfo->stream, "]");
1476 dinfo->fprintf_func (dinfo->stream, ", gpr_wrboth");
1478 dinfo->fprintf_func (dinfo->stream, ", predicate_cc");
1489 int num_ctx, struct disassemble_info *dinfo)
1510 dinfo->fprintf_func (dinfo->stream, "ld_field_w_clr[");
1512 dinfo->fprintf_func (dinfo->stream, "ld_field[");
1515 dst_lmext, imm_msb, dinfo);
1516 dinfo->fprintf_func (dinfo->stream, ", %d%d%d%d, ",
1521 src_lmext, imm_msb, dinfo);
1524 dinfo->fprintf_func (dinfo->stream, ", >>rot%d", shift);
1528 dinfo->fprintf_func (dinfo->stream, ", >>%d", shift);
1530 dinfo->fprintf_func (dinfo->stream, ", >>indirect");
1535 dinfo->fprintf_func (dinfo->stream, ", <<%d", (32 - shift));
1537 dinfo->fprintf_func (dinfo->stream, ", <<indirect");
1540 dinfo->fprintf_func (dinfo->stream, ", >>dbl%d", shift);
1542 dinfo->fprintf_func (dinfo->stream, "]");
1545 dinfo->fprintf_func (dinfo->stream, ", load_cc");
1547 dinfo->fprintf_func (dinfo->stream, ", gpr_wrboth");
1549 dinfo->fprintf_func (dinfo->stream, ", predicate_cc");
1557 nfp_me27_28_print_ctx_arb (uint64_t instr, struct disassemble_info *dinfo)
1567 dinfo->fprintf_func (dinfo->stream, "ctx_arb[");
1569 dinfo->fprintf_func (dinfo->stream, "bpt");
1571 dinfo->fprintf_func (dinfo->stream, "voluntary");
1574 dinfo->fprintf_func (dinfo->stream, "kill");
1578 dinfo->fprintf_func (dinfo->stream, "--");
1588 dinfo->fprintf_func (dinfo->stream, "%ssig%d",
1594 dinfo->fprintf_func (dinfo->stream, "]");
1597 dinfo->fprintf_func (dinfo->stream, ", any");
1599 dinfo->fprintf_func (dinfo->stream, ", br[.%d]", resume_addr);
1601 dinfo->fprintf_func (dinfo->stream, ", defer[%d]", defer);
1609 int num_ctx, struct disassemble_info *dinfo)
1630 dinfo->fprintf_func (dinfo->stream, "uwr[*u$index%d++, ",
1633 src_lmext, dinfo);
1637 dinfo->fprintf_func (dinfo->stream, "urd[");
1639 src_lmext, dinfo);
1640 dinfo->fprintf_func (dinfo->stream, ", *u$index%d++",
1643 dinfo->fprintf_func (dinfo->stream, "]");
1652 dinfo->fprintf_func (dinfo->stream, "local_csr_%s[",
1655 dinfo->fprintf_func (dinfo->stream, "%s", nm);
1657 dinfo->fprintf_func (dinfo->stream, "0x%x", (csr_num * 4));
1661 dinfo->fprintf_func (dinfo->stream, ", ");
1663 src_lmext, dinfo);
1665 dinfo->fprintf_func (dinfo->stream, "]");
1676 struct disassemble_info *dinfo)
1686 dinfo->fprintf_func (dinfo->stream, _("<invalid branch>["));
1690 dinfo->fprintf_func (dinfo->stream, "%s[", nfp_me27_28_br_ops[br_op]);
1698 dinfo->fprintf_func (dinfo->stream, "%d, ", ctx_sig_state);
1702 dinfo->fprintf_func (dinfo->stream, "%s, ",
1707 dinfo->fprintf_func (dinfo->stream, "cls_ring%d_status, ",
1714 dinfo->fprintf_func (dinfo->stream, ".%d]", br_addr);
1717 dinfo->fprintf_func (dinfo->stream, ", defer[%d]", defer);
1725 struct disassemble_info *dinfo)
1737 dinfo->fprintf_func (dinfo->stream, "br=byte[");
1739 dinfo->fprintf_func (dinfo->stream, "br!=byte[");
1743 src_lmext, imm_msb, dinfo);
1746 src_lmext, imm_msb, dinfo);
1748 dinfo->fprintf_func (dinfo->stream, ", %d, ", by);
1752 src_lmext, imm_msb, dinfo);
1755 src_lmext, imm_msb, dinfo);
1757 dinfo->fprintf_func (dinfo->stream, ", .%d]", br_addr);
1760 dinfo->fprintf_func (dinfo->stream, ", defer[%d]", defer);
1769 int num_ctx, struct disassemble_info *dinfo)
1779 dinfo->fprintf_func (dinfo->stream, "br_bset[");
1781 dinfo->fprintf_func (dinfo->stream, "br_bclr[");
1786 || !nfp_me_print_opnd8 (srcB, 'B', num_ctx, src_lmext, 0, dinfo);
1792 || !nfp_me_print_opnd8 (srcA, 'A', num_ctx, src_lmext, 0, dinfo);
1796 dinfo->fprintf_func (dinfo->stream, ", %d, .%d]", b, br_addr);
1799 dinfo->fprintf_func (dinfo->stream, ", defer[%d]", defer);
1808 int num_ctx, struct disassemble_info *dinfo)
1822 dinfo->fprintf_func (dinfo->stream, "rtn[");
1824 dinfo->fprintf_func (dinfo->stream, "jump[");
1827 err = err || !nfp_me_print_opnd10 (srcB, 'B', num_ctx, src_lmext, dinfo);
1829 err = err || !nfp_me_print_opnd10 (srcA, 'A', num_ctx, src_lmext, dinfo);
1832 dinfo->fprintf_func (dinfo->stream, ", .%d", imm);
1834 dinfo->fprintf_func (dinfo->stream, "]");
1837 dinfo->fprintf_func (dinfo->stream, ", defer[%d]", defer);
1848 int num_ctx, struct disassemble_info *dinfo)
1866 dinfo->fprintf_func (dinfo->stream, "mul_step[");
1870 || !nfp_me_print_opnd10 (srcA, dst_bank, num_ctx, dst_lmext, dinfo);
1873 src_lmext, dinfo);
1875 dinfo->fprintf_func (dinfo->stream, ", ");
1878 dinfo->fprintf_func (dinfo->stream, "--");
1881 src_lmext, dinfo);
1883 dinfo->fprintf_func (dinfo->stream, "], %s", nfp_me27_28_mult_types[mtype]);
1892 dinfo->fprintf_func (dinfo->stream, "_%s", s);
1896 dinfo->fprintf_func (dinfo->stream, ", no_cc");
1898 dinfo->fprintf_func (dinfo->stream, ", gpr_wrboth");
1900 dinfo->fprintf_func (dinfo->stream, ", predicate_cc");
1957 int num_ctx, struct disassemble_info *dinfo)
1995 dinfo->fprintf_func (dinfo->stream, "cap[");
1999 dinfo->fprintf_func (dinfo->stream, "msf0[");
2003 dinfo->fprintf_func (dinfo->stream, "msf1[");
2007 dinfo->fprintf_func (dinfo->stream, "pcie[");
2014 dinfo->fprintf_func (dinfo->stream, "crypto[");
2018 dinfo->fprintf_func (dinfo->stream, "arm[");
2022 dinfo->fprintf_func (dinfo->stream, "ct[");
2033 dinfo->fprintf_func (dinfo->stream, "scratch[");
2037 dinfo->fprintf_func (dinfo->stream, "sram[");
2042 dinfo->fprintf_func (dinfo->stream, "mem[");
2047 dinfo->fprintf_func (dinfo->stream, "cls[");
2055 dinfo->fprintf_func (dinfo->stream, _("<invalid cmd target %d:%d:%d>[]"),
2066 dinfo->fprintf_func (dinfo->stream, _("<invalid cmd action %d:%d:%d>[]"),
2073 dinfo->fprintf_func (dinfo->stream, "%s[$xfer_%d, %d",
2078 dinfo->fprintf_func (dinfo->stream, "%s, ", mnemonic);
2091 dinfo->fprintf_func (dinfo->stream, "$xfer_%d, ", xfer);
2093 || !nfp_me_print_opnd8 (srcA, 'A' + visswap, num_ctx, 0, 0, dinfo);
2094 dinfo->fprintf_func (dinfo->stream, ", <<8, ");
2096 || !nfp_me_print_opnd8 (srcB, 'B' - visswap, num_ctx, 0, 0, dinfo);
2097 dinfo->fprintf_func (dinfo->stream, ", %d", (cpp_len + 1));
2101 dinfo->fprintf_func (dinfo->stream, "0x%x, ", (indref << 6) | xfer);
2103 || !nfp_me_print_opnd8 (srcA, 'A' + visswap, num_ctx, 0, 0, dinfo);
2105 dinfo->fprintf_func (dinfo->stream, ", ");
2107 dinfo->fprintf_func (dinfo->stream, ", <<8, ");
2109 || !nfp_me_print_opnd8 (srcB, 'B' - visswap, num_ctx, 0, 0, dinfo);
2110 dinfo->fprintf_func (dinfo->stream, ", %d", (cpp_len + 1));
2113 dinfo->fprintf_func (dinfo->stream, "$xfer_%d, ", xfer);
2114 err = err || !nfp_me_print_opnd8 (srcA, 'A', num_ctx, 0, 0, dinfo);
2115 dinfo->fprintf_func (dinfo->stream, ", ");
2116 err = err || !nfp_me_print_opnd8 (srcB, 'B', num_ctx, 0, 0, dinfo);
2117 dinfo->fprintf_func (dinfo->stream, ", %d", (cpp_len + 1));
2120 dinfo->fprintf_func (dinfo->stream, "$xfer_%d, 0x%x, %d", xfer, valBA,
2124 dinfo->fprintf_func (dinfo->stream, "0x%x, 0x%x", valBA, imm);
2127 dinfo->fprintf_func (dinfo->stream, "0x%x, --, %d",
2133 dinfo->fprintf_func (dinfo->stream, "]");
2136 dinfo->fprintf_func (dinfo->stream, ", indirect_ref");
2140 dinfo->fprintf_func (dinfo->stream, ", ctx_swap[");
2142 dinfo->fprintf_func (dinfo->stream, "sig%d]", sig);
2144 dinfo->fprintf_func (dinfo->stream, "--]");
2147 dinfo->fprintf_func (dinfo->stream, ", defer[%d]", ctxswap_defer);
2150 dinfo->fprintf_func (dinfo->stream, ", sig_done[sig%d]", sig);
2159 struct disassemble_info *dinfo)
2161 return nfp_me27_28_print_alu_shf (instr, 0, 0, 0, 0, num_ctx, dinfo);
2166 struct disassemble_info *dinfo)
2168 return nfp_me27_28_print_alu_shf (instr, 0, 0, 0, 0, num_ctx, dinfo);
2173 struct disassemble_info *dinfo)
2175 return nfp_me27_28_print_immed (instr, 0, 0, 0, num_ctx, dinfo);
2180 struct disassemble_info *dinfo)
2182 return nfp_me27_28_print_ld_field (instr, 0, 0, 0, 0, num_ctx, dinfo);
2186 nfp_me27_print_ctx_arb (uint64_t instr, struct disassemble_info *dinfo)
2188 return nfp_me27_28_print_ctx_arb (instr, dinfo);
2193 struct disassemble_info *dinfo)
2195 return nfp_me27_28_print_local_csr (instr, 0, num_ctx, dinfo);
2199 nfp_me27_print_branch (uint64_t instr, struct disassemble_info *dinfo)
2201 return nfp_me27_28_print_branch (instr, nfp_me27_br_inpstates, dinfo);
2206 struct disassemble_info *dinfo)
2208 return nfp_me27_28_print_br_byte (instr, 0, num_ctx, dinfo);
2213 struct disassemble_info *dinfo)
2215 return nfp_me27_28_print_br_bit (instr, 0, num_ctx, dinfo);
2220 struct disassemble_info *dinfo)
2222 return nfp_me27_28_print_br_alu (instr, 0, num_ctx, dinfo);
2227 struct disassemble_info *dinfo)
2229 return nfp_me27_28_print_mult (instr, 0, 0, 0, 0, num_ctx, dinfo);
2236 int num_ctx, struct disassemble_info *dinfo)
2274 dinfo->fprintf_func (dinfo->stream, "ila[");
2278 dinfo->fprintf_func (dinfo->stream, "nbi[");
2282 dinfo->fprintf_func (dinfo->stream, "pcie[");
2286 dinfo->fprintf_func (dinfo->stream, "crypto[");
2290 dinfo->fprintf_func (dinfo->stream, "arm[");
2294 dinfo->fprintf_func (dinfo->stream, "ct[");
2309 dinfo->fprintf_func (dinfo->stream, "sram[");
2314 dinfo->fprintf_func (dinfo->stream, "mem[");
2319 dinfo->fprintf_func (dinfo->stream, "cls[");
2326 dinfo->fprintf_func (dinfo->stream, _("<invalid cmd target %d:%d:%d>[]"),
2337 dinfo->fprintf_func (dinfo->stream, _("<invalid cmd action %d:%d:%d>[]"),
2342 dinfo->fprintf_func (dinfo->stream, "%s, ", mnemonic);
2355 dinfo->fprintf_func (dinfo->stream, "$xfer_%d, ", xfer);
2357 || !nfp_me_print_opnd8 (srcA, 'A' + visswap, num_ctx, 0, 0, dinfo);
2358 dinfo->fprintf_func (dinfo->stream, ", <<8, ");
2360 || !nfp_me_print_opnd8 (srcB, 'B' - visswap, num_ctx, 0, 0, dinfo);
2361 dinfo->fprintf_func (dinfo->stream, ", %d", (cpp_len + 1));
2365 dinfo->fprintf_func (dinfo->stream, "0x%x, ", (indref << 6) | xfer);
2367 || !nfp_me_print_opnd8 (srcA, 'A' + visswap, num_ctx, 0, 0, dinfo);
2369 dinfo->fprintf_func (dinfo->stream, ", ");
2371 dinfo->fprintf_func (dinfo->stream, ", <<8, ");
2373 || !nfp_me_print_opnd8 (srcB, 'B' - visswap, num_ctx, 0, 0, dinfo);
2374 dinfo->fprintf_func (dinfo->stream, ", %d", (cpp_len + 1));
2377 dinfo->fprintf_func (dinfo->stream, "$xfer_%d, ", xfer);
2378 err = err || !nfp_me_print_opnd8 (srcA, 'A', num_ctx, 0, 0, dinfo);
2379 dinfo->fprintf_func (dinfo->stream, ", ");
2380 err = err || !nfp_me_print_opnd8 (srcB, 'B', num_ctx, 0, 0, dinfo);
2381 dinfo->fprintf_func (dinfo->stream, ", %d", (cpp_len + 1));
2384 dinfo->fprintf_func (dinfo->stream, "$xfer_%d, 0x%x, %d", xfer, valBA,
2388 dinfo->fprintf_func (dinfo->stream, "0x%x, 0x%x", valBA, imm);
2391 dinfo->fprintf_func (dinfo->stream, "0x%x, --, %d",
2396 dinfo->fprintf_func (dinfo->stream, "]");
2399 dinfo->fprintf_func (dinfo->stream, ", indirect_ref");
2403 dinfo->fprintf_func (dinfo->stream, ", ctx_swap[");
2405 dinfo->fprintf_func (dinfo->stream, "sig%d]", sig);
2407 dinfo->fprintf_func (dinfo->stream, "--]");
2410 dinfo->fprintf_func (dinfo->stream, ", defer[%d]", ctxswap_defer);
2413 dinfo->fprintf_func (dinfo->stream, ", sig_done[sig%d]", sig);
2422 struct disassemble_info *dinfo)
2430 src_lmext, gpr_wrboth, num_ctx, dinfo);
2435 struct disassemble_info *dinfo)
2443 gpr_wrboth, num_ctx, dinfo);
2448 struct disassemble_info *dinfo)
2455 num_ctx, dinfo);
2460 struct disassemble_info *dinfo)
2468 src_lmext, gpr_wrboth, num_ctx, dinfo);
2472 nfp_me28_print_ctx_arb (uint64_t instr, struct disassemble_info *dinfo)
2474 return nfp_me27_28_print_ctx_arb (instr, dinfo);
2479 struct disassemble_info *dinfo)
2483 return nfp_me27_28_print_local_csr (instr, src_lmext, num_ctx, dinfo);
2487 nfp_me28_print_branch (uint64_t instr, struct disassemble_info *dinfo)
2489 return nfp_me27_28_print_branch (instr, nfp_me28_br_inpstates, dinfo);
2494 struct disassemble_info *dinfo)
2497 return nfp_me27_28_print_br_byte (instr, src_lmext, num_ctx, dinfo);
2502 struct disassemble_info *dinfo)
2505 return nfp_me27_28_print_br_bit (instr, src_lmext, num_ctx, dinfo);
2510 struct disassemble_info *dinfo)
2513 return nfp_me27_28_print_br_alu (instr, src_lmext, num_ctx, dinfo);
2518 struct disassemble_info *dinfo)
2526 gpr_wrboth, num_ctx, dinfo);
2530 init_nfp3200_priv (nfp_priv_data * priv, struct disassemble_info *dinfo)
2540 if (!dinfo->section)
2544 sec_cnt = elf_numsections (dinfo->section->owner);
2550 sec = elf_elfsections (dinfo->section->owner)[sec_idx];
2558 dinfo->fprintf_func (dinfo->stream, _("File has no ME-Config section."));
2565 dinfo->fprintf_func (dinfo->stream, _("The ME-Config section is corrupt."));
2578 dinfo->fprintf_func (dinfo->stream,
2585 if (!bfd_get_section_contents (dinfo->section->owner, sec->bfd_section,
2604 bool is_for_text, struct disassemble_info *dinfo)
2633 if (!bfd_get_section_contents (dinfo->section->owner, sec->bfd_section,
2676 init_nfp6000_priv (nfp_priv_data * priv, struct disassemble_info *dinfo)
2686 if (dinfo->section == NULL
2687 || dinfo->section->owner == NULL
2688 || elf_elfsections (dinfo->section->owner) == NULL)
2692 sec_cnt = elf_numsections (dinfo->section->owner);
2700 sec = elf_elfsections (dinfo->section->owner)[sec_idx];
2723 if (!init_nfp6000_mecsr_sec (priv, sec, is_for_text, dinfo))
2725 dinfo->fprintf_func (dinfo->stream,
2735 parse_disassembler_options (nfp_opts * opts, struct disassemble_info *dinfo)
2739 if (dinfo->disassembler_options == NULL)
2742 FOR_EACH_DISASSEMBLER_OPTION (option, dinfo->disassembler_options)
2755 dinfo->fprintf_func (dinfo->stream, _("Invalid NFP option: %s"), option);
2763 /* Called on first disassembly attempt so that dinfo->section is valid
2767 init_nfp_priv (struct disassemble_info *dinfo)
2772 if (dinfo->private_data)
2773 return (nfp_priv_data *) dinfo->private_data;
2777 if (!dinfo->section)
2787 switch (dinfo->mach)
2790 ret = init_nfp3200_priv (priv, dinfo);
2793 ret = init_nfp6000_priv (priv, dinfo);
2803 dinfo->private_data = priv;
2808 _print_instrs (bfd_vma addr, struct disassemble_info *dinfo, nfp_opts * opts)
2810 nfp_priv_data *priv = init_nfp_priv (dinfo);
2818 err = dinfo->read_memory_func (addr, buffer, 8, dinfo);
2822 if (!dinfo->section)
2838 is_text = (elf_section_flags (dinfo->section)
2841 sh_info = elf_section_info (dinfo->section);
2843 switch (dinfo->mach)
2857 dinfo->fprintf_func (dinfo->stream, "Invalid island or me.");
2870 dinfo->bytes_per_line = 8;
2871 dinfo->bytes_per_chunk = 8;
2880 tmpj = (int) (dinfo->buffer_length >> 3);
2899 dinfo->fprintf_func (dinfo->stream, "%*c%d ", tmpi, '.', pc);
2902 switch (dinfo->mach)
2906 err = nfp_me27_print_cmd (instr, addr_3rdparty32, num_ctx, dinfo);
2908 err = nfp_me27_print_alu_shf (instr, num_ctx, dinfo);
2910 err = nfp_me27_print_alu (instr, num_ctx, dinfo);
2912 err = nfp_me27_print_immed (instr, num_ctx, dinfo);
2914 err = nfp_me27_print_ld_field (instr, num_ctx, dinfo);
2916 err = nfp_me27_print_ctx_arb (instr, dinfo);
2918 err = nfp_me27_print_local_csr (instr, num_ctx, dinfo);
2920 err = nfp_me27_print_branch (instr, dinfo);
2922 err = nfp_me27_print_br_byte (instr, num_ctx, dinfo);
2924 err = nfp_me27_print_br_bit (instr, num_ctx, dinfo);
2926 err = nfp_me27_print_br_alu (instr, num_ctx, dinfo);
2928 err = nfp_me27_print_mult (instr, num_ctx, dinfo);
2930 err = nfp_me_print_invalid (instr, dinfo);
2935 err = nfp_me28_print_cmd (instr, addr_3rdparty32, num_ctx, dinfo);
2937 err = nfp_me28_print_alu_shf (instr, num_ctx, dinfo);
2939 err = nfp_me28_print_alu (instr, num_ctx, dinfo);
2941 err = nfp_me28_print_immed (instr, num_ctx, dinfo);
2943 err = nfp_me28_print_ld_field (instr, num_ctx, dinfo);
2945 err = nfp_me28_print_ctx_arb (instr, dinfo);
2947 err = nfp_me28_print_local_csr (instr, num_ctx, dinfo);
2949 err = nfp_me28_print_branch (instr, dinfo);
2951 err = nfp_me28_print_br_byte (instr, num_ctx, dinfo);
2953 err = nfp_me28_print_br_bit (instr, num_ctx, dinfo);
2955 err = nfp_me28_print_br_alu (instr, num_ctx, dinfo);
2957 err = nfp_me28_print_mult (instr, num_ctx, dinfo);
2959 err = nfp_me_print_invalid (instr, dinfo);
2969 print_insn_nfp (bfd_vma addr, struct disassemble_info *dinfo)
2976 err = parse_disassembler_options (&opts, dinfo);
2980 err = _print_instrs (addr, dinfo, &opts);
2984 dinfo->fprintf_func (dinfo->stream, "\t # ERROR");