Lines Matching defs:thrsw

391         if (inst->sig.thrsw) {
1016 merge.sig.thrsw |= b->sig.thrsw;
1070 if (prev_inst->inst->qpu.sig.thrsw)
1131 /* If we are in a thrsw delay slot check that this instruction
1168 if (inst->sig.thrsw)
1201 * it in the delay slots of a thrsw, which is not
1575 * This is called when trying to merge a thrsw back into the instruction stream
1576 * of instructions that were scheduled *before* the thrsw signal to fill its
1577 * delay slots. Because the actual execution of the thrsw happens after the
1603 * and not when the thrsw instruction is processed, which would
1604 * be after the 2 delay slots following the thrsw instruction.
1605 * This means that we can move up a thrsw up to the instruction
1609 * thrsw
1621 * This is called for instructions scheduled *after* a thrsw signal that may
1622 * land in the delay slots of the thrsw. Because these instructions were
1623 * scheduled after the thrsw, we need to be careful when placing them into
1635 /* We merge thrsw instructions back into the instruction stream
1636 * manually, so any instructions scheduled after a thrsw shold be
1637 * in the actual delay slots and not in the same slot as the thrsw.
1641 /* No emitting a thrsw while the previous thrsw hasn't happened yet. */
1642 if (qinst->qpu.sig.thrsw)
1645 /* The restrictions for instructions scheduled before the the thrsw
1646 * also apply to instructions scheduled after the thrsw that we want
1659 * slots of a thrsw.
1664 /* Miscellaneous restrictions: At the point of a thrsw we need to have
1667 * So avoid placing TMU instructions scheduled after the thrsw into
1670 * the delay slots of a previous thrsw we could overflow our TMU output
1672 * after the thrsw into the sequence before the thrsw.
1681 * switch, which is exactly what we want to avoid with the thrsw
1708 * to the thrsw before it instead.
1721 /* No emitting our thrsw while the previous thrsw hasn't happened yet. */
1758 /* There should be nothing in a thrsw inst being scheduled other than
1765 /* Don't try to emit a thrsw in the delay slots of a previous thrsw
1790 sig.thrsw = true;
1793 /* If we can't merge the thrsw here because of signal
1801 /* For last thrsw we need 2 consecutive slots that are
1802 * thrsw compatible, so if we have previously jumped over
1823 * merge the thrsw in the end, we need to adjust slots filled to match
1832 merge_inst->qpu.sig.thrsw = true;
1855 second_inst->qpu.sig.thrsw = true;
1882 if (inst->qpu.sig.thrsw)
1903 * thrsw, branch or unifa write instruction.
2138 /* We can't put an ldvary in the delay slots of a thrsw. We should've
2291 if (inst->sig.thrsw) {
2506 struct qinst *thrsw = vir_nop();
2507 thrsw->qpu.sig.thrsw = true;
2508 emit_thrsw(c, end_block, &scoreboard, thrsw, true);