Lines Matching refs:dn_reg

253 	r1 = dnp->dn_left->dn_reg;
309 * ld [dst->dn_reg], r1
314 * and src->dn_reg, r2, r2
319 * st? r1, [dst->dn_reg]
382 dt_cg_load(dst, fp, m.ctm_type), dst->dn_reg, r1);
390 instr = DIF_INSTR_FMT(DIF_OP_AND, src->dn_reg, r2, r2);
429 instr = DIF_INSTR_COPYS(src->dn_reg, reg, dst->dn_reg);
436 reg = src->dn_reg;
440 instr = DIF_INSTR_STORE(DIF_OP_STB, reg, dst->dn_reg);
443 instr = DIF_INSTR_STORE(DIF_OP_STH, reg, dst->dn_reg);
446 instr = DIF_INSTR_STORE(DIF_OP_STW, reg, dst->dn_reg);
449 instr = DIF_INSTR_STORE(DIF_OP_STX, reg, dst->dn_reg);
492 src->dn_reg, reg, dst->dn_reg);
496 DIF_OP_SRA : DIF_OP_SRL, dst->dn_reg, reg, dst->dn_reg);
537 isp->dis_args[i].dn_reg = dnp->dn_reg; /* re-use register */
539 isp->dis_args[i].dn_reg = -1;
553 instr = DIF_INSTR_PUSHTS(op, t.dtdt_kind, reg, dnp->dn_reg);
555 dt_regset_free(drp, dnp->dn_reg);
584 dt_cg_ptrsize(dnp, dlp, drp, DIF_OP_MUL, dnp->dn_left->dn_reg);
588 dt_cg_ptrsize(dnp, dlp, drp, DIF_OP_MUL, dnp->dn_right->dn_reg);
590 instr = DIF_INSTR_FMT(op, dnp->dn_left->dn_reg,
591 dnp->dn_right->dn_reg, dnp->dn_left->dn_reg);
594 dt_regset_free(drp, dnp->dn_right->dn_reg);
595 dnp->dn_reg = dnp->dn_left->dn_reg;
599 dlp, drp, DIF_OP_UDIV, dnp->dn_reg);
630 dnp->dn_reg = dnp->dn_child->dn_reg;
637 instr = DIF_INSTR_FMT(op, dnp->dn_reg, reg, dnp->dn_reg);
646 * In both paths, we store the value in dnp->dn_reg (the new value).
653 idp->di_id, dnp->dn_reg);
665 dt_regset_free(drp, dnp->dn_child->dn_reg);
689 dnp->dn_reg = dnp->dn_child->dn_reg;
695 instr = DIF_INSTR_FMT(op, dnp->dn_reg, nreg, nreg);
713 int oreg = dnp->dn_reg;
721 dnp->dn_reg = nreg;
723 dnp->dn_reg = oreg;
725 dt_regset_free(drp, dnp->dn_child->dn_reg);
772 instr = DIF_INSTR_CMP(opc, dnp->dn_left->dn_reg, dnp->dn_right->dn_reg);
774 dt_regset_free(drp, dnp->dn_right->dn_reg);
775 dnp->dn_reg = dnp->dn_left->dn_reg;
780 instr = DIF_INSTR_MOV(DIF_REG_R0, dnp->dn_reg);
786 dt_cg_xsetx(dlp, NULL, lbl_true, dnp->dn_reg, 1);
810 instr = DIF_INSTR_TST(dnp->dn_expr->dn_reg);
812 dt_regset_free(drp, dnp->dn_expr->dn_reg);
818 instr = DIF_INSTR_MOV(dnp->dn_left->dn_reg, DIF_REG_R0);
821 dt_regset_free(drp, dnp->dn_left->dn_reg);
828 dnp->dn_reg = dnp->dn_right->dn_reg;
831 * Now that dn_reg is assigned, reach back and patch the correct MOV
832 * instruction into the tail of dn_left. We know dn_reg was unused
835 dip->di_instr = DIF_INSTR_MOV(dnp->dn_left->dn_reg, dnp->dn_reg);
848 instr = DIF_INSTR_TST(dnp->dn_left->dn_reg);
850 dt_regset_free(drp, dnp->dn_left->dn_reg);
856 instr = DIF_INSTR_TST(dnp->dn_right->dn_reg);
858 dnp->dn_reg = dnp->dn_right->dn_reg;
863 dt_cg_setx(dlp, dnp->dn_reg, 1);
868 instr = DIF_INSTR_MOV(DIF_REG_R0, dnp->dn_reg);
883 instr = DIF_INSTR_TST(dnp->dn_left->dn_reg);
888 dt_cg_setx(dlp, dnp->dn_left->dn_reg, 1);
893 instr = DIF_INSTR_TST(dnp->dn_right->dn_reg);
898 dt_cg_setx(dlp, dnp->dn_right->dn_reg, 1);
900 instr = DIF_INSTR_FMT(DIF_OP_XOR, dnp->dn_left->dn_reg,
901 dnp->dn_right->dn_reg, dnp->dn_left->dn_reg);
905 dt_regset_free(drp, dnp->dn_right->dn_reg);
906 dnp->dn_reg = dnp->dn_left->dn_reg;
919 instr = DIF_INSTR_TST(dnp->dn_left->dn_reg);
921 dt_regset_free(drp, dnp->dn_left->dn_reg);
927 instr = DIF_INSTR_TST(dnp->dn_right->dn_reg);
929 dnp->dn_reg = dnp->dn_right->dn_reg;
934 dt_cg_xsetx(dlp, NULL, lbl_true, dnp->dn_reg, 1);
939 instr = DIF_INSTR_MOV(DIF_REG_R0, dnp->dn_reg);
954 dnp->dn_reg = dnp->dn_child->dn_reg;
956 instr = DIF_INSTR_TST(dnp->dn_reg);
962 instr = DIF_INSTR_MOV(DIF_REG_R0, dnp->dn_reg);
968 dt_cg_xsetx(dlp, NULL, lbl_zero, dnp->dn_reg, 1);
982 * each member, and then set dnp->dn_reg to the scratch object address.
1027 dxp->dx_ident->di_id = dnp->dn_right->dn_reg;
1035 mnp->dn_reg = mnp->dn_membexpr->dn_reg;
1073 dn.dn_reg = r2;
1081 dn.dn_reg = r1;
1086 dt_regset_free(drp, mnp->dn_reg);
1092 if (dnp->dn_right->dn_reg != -1)
1093 dt_regset_free(drp, dnp->dn_right->dn_reg);
1095 assert(dnp->dn_reg == dnp->dn_right->dn_reg);
1096 dnp->dn_reg = r1;
1104 * In both paths, we assume dnp->dn_reg already has the new value.
1114 idp->di_id, dnp->dn_reg);
1126 dt_regset_free(drp, dnp->dn_left->dn_reg);
1145 if ((dnp->dn_reg = dt_regset_alloc(drp)) == -1)
1154 instr = DIF_INSTR_LDV(op, dnp->dn_ident->di_id, dnp->dn_reg);
1186 instr = DIF_INSTR_TST(dnp->dn_reg);
1192 dt_cg_setx(dlp, dnp->dn_reg, dt_node_type_size(dnp));
1193 instr = DIF_INSTR_ALLOCS(dnp->dn_reg, dnp->dn_reg);
1197 instr = DIF_INSTR_STV(stvop, dnp->dn_ident->di_id, dnp->dn_reg);
1200 instr = DIF_INSTR_LDV(op, dnp->dn_ident->di_id, dnp->dn_reg);
1229 * If we're using a dynamic translator for args[], then just set dn_reg
1236 dnp->dn_reg = -1;
1245 dnp->dn_reg = dnp->dn_args->dn_reg;
1255 dnp->dn_args->dn_reg, dnp->dn_reg);
1284 instr = DIF_INSTR_FMT(DIF_OP_SLL, dnp->dn_reg, reg, dnp->dn_reg);
1288 DIF_OP_SRA : DIF_OP_SRL, dnp->dn_reg, reg, dnp->dn_reg);
1330 dnp->dn_reg = inp->din_root->dn_reg;
1358 dt_regset_free(drp, dnp->dn_left->dn_reg);
1360 dnp->dn_reg = dnp->dn_right->dn_reg;
1365 dnp->dn_reg = dnp->dn_right->dn_reg;
1515 dnp->dn_reg = dnp->dn_child->dn_reg;
1516 instr = DIF_INSTR_NOT(dnp->dn_reg, dnp->dn_reg);
1538 dnp->dn_reg = dnp->dn_child->dn_reg;
1543 dnp->dn_reg = dnp->dn_child->dn_reg;
1546 dnp->dn_reg, dnp->dn_reg);
1553 dnp->dn_reg = dnp->dn_child->dn_reg;
1567 dnp->dn_type), dnp->dn_reg, dnp->dn_reg);
1582 dnp->dn_reg = dnp->dn_child->dn_reg;
1592 if ((dnp->dn_reg = dt_regset_alloc(drp)) == -1)
1596 dt_cg_setx(dlp, dnp->dn_reg, size);
1602 dnp->dn_reg = dnp->dn_child->dn_reg;
1619 if ((dnp->dn_reg = dt_regset_alloc(drp)) == -1)
1624 dxp->dx_ident->di_id, dnp->dn_reg);
1631 instr = DIF_INSTR_XLATE(op, 0, dnp->dn_reg);
1641 dnp->dn_reg = dnp->dn_right->dn_reg;
1646 dnp->dn_reg = dnp->dn_right->dn_reg;
1675 dxp->dx_ident->di_id = dnp->dn_left->dn_reg;
1678 dnp->dn_reg = mnp->dn_membexpr->dn_reg;
1684 if (dnp->dn_left->dn_reg != -1)
1685 dt_regset_free(drp, dnp->dn_left->dn_reg);
1715 dnp->dn_left->dn_reg, reg, dnp->dn_left->dn_reg);
1734 ctfp, m.ctm_type), dnp->dn_left->dn_reg,
1735 dnp->dn_left->dn_reg);
1747 dnp->dn_reg = dnp->dn_left->dn_reg;
1751 if ((dnp->dn_reg = dt_regset_alloc(drp)) == -1)
1762 instr = DIF_INSTR_SETS((ulong_t)stroff, dnp->dn_reg);
1775 if ((dnp->dn_reg = dt_regset_alloc(drp)) == -1)
1778 dnp->dn_reg);
1806 if ((dnp->dn_reg = dt_regset_alloc(drp)) == -1)
1810 dnp->dn_ident->di_id, dnp->dn_reg);
1837 if ((dnp->dn_reg = dt_regset_alloc(drp)) == -1)
1850 dnp->dn_ident->di_id, dnp->dn_reg);
1868 if ((dnp->dn_reg = dt_regset_alloc(drp)) == -1)
1872 DT_LBL_NONE, dnp->dn_reg, sym.st_value);
1876 dnp->dn_type), dnp->dn_reg, dnp->dn_reg);
1890 if ((dnp->dn_reg = dt_regset_alloc(drp)) == -1)
1893 dt_cg_setx(dlp, dnp->dn_reg, dnp->dn_value);
1951 instr = DIF_INSTR_RET(dnp->dn_reg);
1952 dt_regset_free(pcb->pcb_regs, dnp->dn_reg);