Lines Matching defs:instr
102 print_alu_name(afuc_opc opc, uint32_t instr)
139 printerr("[%08x]", instr);
292 afuc_instr *instr = (void *)&instrs[pc];
297 afuc_get_opc(instr, &opc, &rep);
378 print_dst(instr->alui.dst);
381 print_src(instr->alui.src);
384 printf("0x%04x", instr->alui.uimm);
385 print_gpu_reg(instr->alui.uimm);
389 if (instr->alui.src && !src1)
390 printerr(" (src=%02x)", instr->alui.src);
399 print_dst(instr->movi.dst);
400 printf(", 0x%04x", instr->movi.uimm);
401 if (instr->movi.shift)
402 printf(" << %u", instr->movi.shift);
404 if ((instr->movi.dst == REG_ADDR) && (instr->movi.shift >= 16)) {
405 uint32_t val = (uint32_t)instr->movi.uimm << (uint32_t)instr->movi.shift;
418 if ((instr->movi.shift == 16) &&
419 ((instr->movi.uimm & 0xff00) == 0x7000)) {
422 opc = instr->movi.uimm & 0x7f;
431 if (1 || p == ((instr->movi.uimm >> 7) & 0x1)) {
442 print_gpu_reg((uint32_t)instr->movi.uimm << (uint32_t)instr->movi.shift);
449 if (instr->alu.alu == OPC_NOT || instr->alu.alu == OPC_MSB)
452 if (instr->alu.pad)
457 if (instr->alu.xmov)
458 printf("(xmov%d)", instr->alu.xmov);
466 if ((instr->alu.alu == OPC_OR) && !instr->alu.src1) {
470 print_alu_name(instr->alu.alu, instrs[pc]);
473 print_dst(instr->alu.dst);
476 print_src(instr->alu.src1);
479 print_src(instr->alu.src2);
483 if (instr->alu.pad)
484 printerr(" (pad=%01x)", instr->alu.pad);
485 if (instr->alu.src1 && !src1)
486 printerr(" (src1=%02x)", instr->alu.src1);
522 if (verbose && instr->alu.xmov) {
523 for (int i = 0; i < instr->alu.xmov; i++) {
525 if (instr->alu.dst < 0x1d)
527 else if (instr->alu.xmov == 3 && i == 1)
528 print_dst(instr->alu.dst);
532 print_src(instr->alu.src2);
584 print_src(instr->control.src1);
586 print_dst(instr->control.src1);
588 print_src(instr->control.src2);
590 if (is_control_reg && instr->control.flags != 0x4)
591 print_control_reg(instr->control.uimm);
593 printf("0x%03x", instr->control.uimm);
594 printf("], 0x%x", instr->control.flags);
601 unsigned off = pc + instr->br.ioff;
616 if (instr->br.src || (opc != OPC_BRNEB)) {
630 print_src(instr->br.src);
632 printf(", 0x%x,", instr->br.bit_or_imm);
634 printf(", b%u,", instr->br.bit_or_imm);
638 if (verbose && instr->br.bit_or_imm) {
639 printerr(" (src=%03x, bit=%03x) ", instr->br.src,
640 instr->br.bit_or_imm);
647 printf(" (#%d, %04x)", instr->br.ioff, off);
653 printlbl("%s", fxn_name(instr->call.uoff));
655 printf(" (%04x)", instr->call.uoff);
656 if (instr->br.bit_or_imm || instr->br.src) {
657 printerr(" (src=%03x, bit=%03x) ", instr->br.src,
658 instr->br.bit_or_imm);
664 if (instr->ret.pad)
666 if (instr->ret.interrupt)
673 if (instr->waitin.pad)
676 if (verbose && instr->waitin.pad)
677 printerr(" (pad=%x)", instr->waitin.pad);
684 printlbl("%s", label_name(instr->call.uoff, true));
694 if (instr->pad)
702 print_dst(instr->alui.dst);
704 print_src(instr->alui.src);
732 afuc_instr *instr = (void *)&instrs[i];
734 afuc_get_opc(instr, &opc, &rep);
741 label_idx(i + instr->br.ioff, true);
745 label_idx(instr->call.uoff, true);
748 fxn_idx(instr->call.uoff, true);