Lines Matching refs:mi
1324 struct ppb_microseq *mi;
1341 #define INCR_PC (mi ++) /* increment program counter */
1344 mi = *p_msq;
1346 switch (mi->opcode) {
1348 cc = r_reg(mi->arg[0].i, ppc);
1349 cc &= (char)mi->arg[2].i; /* clear mask */
1350 cc |= (char)mi->arg[1].i; /* assert mask */
1351 w_reg(mi->arg[0].i, ppc, cc);
1356 reg = mi->arg[1].i;
1359 if ((len = mi->arg[0].i) == MS_ACCUM) {
1373 reg = mi->arg[1].i;
1374 mask = (char)mi->arg[2].i;
1377 if ((len = mi->arg[0].i) == MS_ACCUM) {
1391 *((char *) mi->arg[2].p) = r_reg(mi->arg[0].i, ppc) &
1392 (char)mi->arg[1].i;
1401 for (;mi->opcode == MS_OP_RASSERT; INCR_PC)
1402 w_reg(mi->arg[0].i, ppc, (char)mi->arg[1].i);
1404 if (mi->opcode == MS_OP_DELAY) {
1405 DELAY(mi->arg[0].i);
1412 if (mi->arg[0].i) {
1414 pause("ppbdelay", mi->arg[0].i * (hz/1000));
1421 reg = mi->arg[0].i;
1422 iter = mi->arg[1].i;
1423 p = (char *)mi->arg[2].p;
1434 ppc->ppc_accum = mi->arg[0].i;
1440 mi += mi->arg[0].i;
1446 if ((cc & (char)mi->arg[0].i) == (char)mi->arg[0].i)
1447 mi += mi->arg[1].i;
1453 if ((cc & (char)mi->arg[0].i) == 0)
1454 mi += mi->arg[1].i;
1460 if ((cc & ((char)mi->arg[0].i | (char)mi->arg[1].i)) ==
1461 (char)mi->arg[0].i)
1462 mi += mi->arg[2].i;
1471 if ((error = mi->arg[0].f(mi->arg[1].p, ppc->ppc_ptr)))
1478 ppc->ppc_ptr = (char *)mi->arg[0].p;
1486 if (mi->arg[0].p) {
1490 stack = mi;
1493 mi = (struct ppb_microseq *)mi->arg[0].p;
1501 mi = stack;
1521 *p_msq = mi;
1528 __func__, mi->opcode);