Lines Matching refs:dlp

90 dt_cg_xsetx(dt_irlist_t *dlp, dt_ident_t *idp, uint_t lbl, int reg, uint64_t x)
102 dt_irlist_append(dlp, dt_cg_node_alloc(lbl, instr));
105 dlp->dl_last->di_extern = idp;
109 dt_cg_setx(dt_irlist_t *dlp, int reg, uint64_t x)
111 dt_cg_xsetx(dlp, NULL, DT_LBL_NONE, reg, x);
185 dt_cg_ptrsize(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp,
215 dt_cg_setx(dlp, sreg, size);
217 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
239 dt_cg_field_get(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp,
276 dt_cg_setx(dlp, r2, 64 - shift);
278 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
280 dt_cg_setx(dlp, r2, 64 - e.cte_bits);
282 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
290 dt_cg_setx(dlp, r2, shift);
292 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
294 dt_cg_setx(dlp, r2, (1ULL << e.cte_bits) - 1);
296 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
325 dt_cg_field_set(dt_node_t *src, dt_irlist_t *dlp,
383 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
385 dt_cg_setx(dlp, r2, cmask);
387 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
389 dt_cg_setx(dlp, r2, fmask);
391 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
393 dt_cg_setx(dlp, r3, shift);
395 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
398 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
407 dt_cg_store(dt_node_t *src, dt_irlist_t *dlp, dt_regset_t *drp, dt_node_t *dst)
428 dt_cg_setx(dlp, reg, size);
430 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
434 reg = dt_cg_field_set(src, dlp, drp, dst);
455 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
471 dt_irlist_t *dlp, dt_regset_t *drp)
489 dt_cg_setx(dlp, reg, n);
493 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
498 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
517 dt_irlist_t *dlp, dt_regset_t *drp)
524 dt_cg_node(dnp, dlp, drp);
526 dt_irlist_append(dlp,
538 dt_cg_typecast(dnp, &isp->dis_args[i], dlp, drp);
549 dt_cg_setx(dlp, reg, t.dtdt_size);
554 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
566 dt_cg_arithmetic_op(dt_node_t *dnp, dt_irlist_t *dlp,
582 dt_cg_node(dnp->dn_left, dlp, drp);
584 dt_cg_ptrsize(dnp, dlp, drp, DIF_OP_MUL, dnp->dn_left->dn_reg);
586 dt_cg_node(dnp->dn_right, dlp, drp);
588 dt_cg_ptrsize(dnp, dlp, drp, DIF_OP_MUL, dnp->dn_right->dn_reg);
593 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
599 dlp, drp, DIF_OP_UDIV, dnp->dn_reg);
615 dt_cg_prearith_op(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp, uint_t op)
629 dt_cg_node(dnp->dn_child, dlp, drp);
635 dt_cg_setx(dlp, reg, size);
638 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
654 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
662 dt_cg_node(dnp->dn_child, dlp, drp);
664 dt_cg_store(dnp, dlp, drp, dnp->dn_child);
673 dt_cg_postarith_op(dt_node_t *dnp, dt_irlist_t *dlp,
688 dt_cg_node(dnp->dn_child, dlp, drp);
694 dt_cg_setx(dlp, nreg, size);
696 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
710 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
719 dt_cg_node(dnp->dn_child, dlp, drp);
722 dt_cg_store(dnp, dlp, drp, dnp->dn_child);
756 dt_cg_compare_op(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp, uint_t op)
758 uint_t lbl_true = dt_irlist_label(dlp);
759 uint_t lbl_post = dt_irlist_label(dlp);
764 dt_cg_node(dnp->dn_left, dlp, drp);
765 dt_cg_node(dnp->dn_right, dlp, drp);
773 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
778 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
781 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
784 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
786 dt_cg_xsetx(dlp, NULL, lbl_true, dnp->dn_reg, 1);
787 dt_irlist_append(dlp, dt_cg_node_alloc(lbl_post, DIF_INSTR_NOP));
801 dt_cg_ternary_op(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp)
803 uint_t lbl_false = dt_irlist_label(dlp);
804 uint_t lbl_post = dt_irlist_label(dlp);
809 dt_cg_node(dnp->dn_expr, dlp, drp);
811 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
815 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
817 dt_cg_node(dnp->dn_left, dlp, drp);
820 dt_irlist_append(dlp, dip);
824 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
826 dt_irlist_append(dlp, dt_cg_node_alloc(lbl_false, DIF_INSTR_NOP));
827 dt_cg_node(dnp->dn_right, dlp, drp);
836 dt_irlist_append(dlp, dt_cg_node_alloc(lbl_post, DIF_INSTR_NOP));
840 dt_cg_logical_and(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp)
842 uint_t lbl_false = dt_irlist_label(dlp);
843 uint_t lbl_post = dt_irlist_label(dlp);
847 dt_cg_node(dnp->dn_left, dlp, drp);
849 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
853 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
855 dt_cg_node(dnp->dn_right, dlp, drp);
857 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
861 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
863 dt_cg_setx(dlp, dnp->dn_reg, 1);
866 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
869 dt_irlist_append(dlp, dt_cg_node_alloc(lbl_false, instr));
871 dt_irlist_append(dlp, dt_cg_node_alloc(lbl_post, DIF_INSTR_NOP));
875 dt_cg_logical_xor(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp)
877 uint_t lbl_next = dt_irlist_label(dlp);
878 uint_t lbl_tail = dt_irlist_label(dlp);
882 dt_cg_node(dnp->dn_left, dlp, drp);
884 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
887 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
888 dt_cg_setx(dlp, dnp->dn_left->dn_reg, 1);
890 dt_irlist_append(dlp, dt_cg_node_alloc(lbl_next, DIF_INSTR_NOP));
891 dt_cg_node(dnp->dn_right, dlp, drp);
894 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
897 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
898 dt_cg_setx(dlp, dnp->dn_right->dn_reg, 1);
903 dt_irlist_append(dlp, dt_cg_node_alloc(lbl_tail, instr));
910 dt_cg_logical_or(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp)
912 uint_t lbl_true = dt_irlist_label(dlp);
913 uint_t lbl_false = dt_irlist_label(dlp);
914 uint_t lbl_post = dt_irlist_label(dlp);
918 dt_cg_node(dnp->dn_left, dlp, drp);
920 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
924 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
926 dt_cg_node(dnp->dn_right, dlp, drp);
928 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
932 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
934 dt_cg_xsetx(dlp, NULL, lbl_true, dnp->dn_reg, 1);
937 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
940 dt_irlist_append(dlp, dt_cg_node_alloc(lbl_false, instr));
942 dt_irlist_append(dlp, dt_cg_node_alloc(lbl_post, DIF_INSTR_NOP));
946 dt_cg_logical_neg(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp)
948 uint_t lbl_zero = dt_irlist_label(dlp);
949 uint_t lbl_post = dt_irlist_label(dlp);
953 dt_cg_node(dnp->dn_child, dlp, drp);
957 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
960 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
963 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
966 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
968 dt_cg_xsetx(dlp, NULL, lbl_zero, dnp->dn_reg, 1);
969 dt_irlist_append(dlp, dt_cg_node_alloc(lbl_post, DIF_INSTR_NOP));
973 dt_cg_asgn_op(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp)
1014 dt_cg_setx(dlp, r1,
1018 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
1034 dt_cg_node(mnp->dn_membexpr, dlp, drp);
1036 dt_cg_typecast(mnp->dn_membexpr, mnp, dlp, drp);
1066 dt_cg_setx(dlp, r2, ctm.ctm_offset / NBBY);
1068 dt_irlist_append(dlp,
1075 dt_cg_store(mnp, dlp, drp, &dn);
1083 dt_cg_store(mnp, dlp, drp, &dn);
1110 dt_cg_arglist(idp, dnp->dn_left->dn_args, dlp, drp);
1115 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
1124 dt_cg_node(dnp->dn_left, dlp, drp);
1125 dt_cg_store(dnp, dlp, drp, dnp->dn_left);
1134 dt_cg_assoc_op(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp)
1143 dt_cg_arglist(dnp->dn_ident, dnp->dn_args, dlp, drp);
1155 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
1184 uint_t label = dt_irlist_label(dlp);
1187 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
1190 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
1192 dt_cg_setx(dlp, dnp->dn_reg, dt_node_type_size(dnp));
1194 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
1198 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
1201 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
1203 dt_irlist_append(dlp, dt_cg_node_alloc(label, DIF_INSTR_NOP));
1208 dt_cg_array_op(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp)
1242 dt_cg_node(dnp->dn_args, dlp, drp);
1257 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
1282 dt_cg_setx(dlp, reg, n);
1285 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
1290 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
1307 dt_cg_inline(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp)
1329 dt_cg_node(inp->din_root, dlp, drp);
1331 dt_cg_typecast(inp->din_root, dnp, dlp, drp);
1342 dt_cg_node(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp)
1357 dt_cg_node(dnp->dn_left, dlp, drp);
1359 dt_cg_node(dnp->dn_right, dlp, drp);
1364 dt_cg_node(dnp->dn_right, dlp, drp);
1366 dt_cg_asgn_op(dnp, dlp, drp);
1370 dt_cg_arithmetic_op(dnp, dlp, drp, DIF_OP_ADD);
1371 dt_cg_asgn_op(dnp, dlp, drp);
1375 dt_cg_arithmetic_op(dnp, dlp, drp, DIF_OP_SUB);
1376 dt_cg_asgn_op(dnp, dlp, drp);
1380 dt_cg_arithmetic_op(dnp, dlp, drp, DIF_OP_MUL);
1381 dt_cg_asgn_op(dnp, dlp, drp);
1385 dt_cg_arithmetic_op(dnp, dlp, drp,
1387 dt_cg_asgn_op(dnp, dlp, drp);
1391 dt_cg_arithmetic_op(dnp, dlp, drp,
1393 dt_cg_asgn_op(dnp, dlp, drp);
1397 dt_cg_arithmetic_op(dnp, dlp, drp, DIF_OP_AND);
1398 dt_cg_asgn_op(dnp, dlp, drp);
1402 dt_cg_arithmetic_op(dnp, dlp, drp, DIF_OP_XOR);
1403 dt_cg_asgn_op(dnp, dlp, drp);
1407 dt_cg_arithmetic_op(dnp, dlp, drp, DIF_OP_OR);
1408 dt_cg_asgn_op(dnp, dlp, drp);
1412 dt_cg_arithmetic_op(dnp, dlp, drp, DIF_OP_SLL);
1413 dt_cg_asgn_op(dnp, dlp, drp);
1417 dt_cg_arithmetic_op(dnp, dlp, drp,
1419 dt_cg_asgn_op(dnp, dlp, drp);
1423 dt_cg_ternary_op(dnp, dlp, drp);
1427 dt_cg_logical_or(dnp, dlp, drp);
1431 dt_cg_logical_xor(dnp, dlp, drp);
1435 dt_cg_logical_and(dnp, dlp, drp);
1439 dt_cg_arithmetic_op(dnp, dlp, drp, DIF_OP_OR);
1443 dt_cg_arithmetic_op(dnp, dlp, drp, DIF_OP_XOR);
1447 dt_cg_arithmetic_op(dnp, dlp, drp, DIF_OP_AND);
1451 dt_cg_compare_op(dnp, dlp, drp, DIF_OP_BE);
1455 dt_cg_compare_op(dnp, dlp, drp, DIF_OP_BNE);
1459 dt_cg_compare_op(dnp, dlp, drp,
1464 dt_cg_compare_op(dnp, dlp, drp,
1469 dt_cg_compare_op(dnp, dlp, drp,
1474 dt_cg_compare_op(dnp, dlp, drp,
1479 dt_cg_arithmetic_op(dnp, dlp, drp, DIF_OP_SLL);
1483 dt_cg_arithmetic_op(dnp, dlp, drp,
1488 dt_cg_arithmetic_op(dnp, dlp, drp, DIF_OP_ADD);
1492 dt_cg_arithmetic_op(dnp, dlp, drp, DIF_OP_SUB);
1496 dt_cg_arithmetic_op(dnp, dlp, drp, DIF_OP_MUL);
1500 dt_cg_arithmetic_op(dnp, dlp, drp,
1505 dt_cg_arithmetic_op(dnp, dlp, drp,
1510 dt_cg_logical_neg(dnp, dlp, drp);
1514 dt_cg_node(dnp->dn_child, dlp, drp);
1517 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
1521 dt_cg_prearith_op(dnp, dlp, drp, DIF_OP_ADD);
1525 dt_cg_postarith_op(dnp, dlp, drp, DIF_OP_ADD);
1529 dt_cg_prearith_op(dnp, dlp, drp, DIF_OP_SUB);
1533 dt_cg_postarith_op(dnp, dlp, drp, DIF_OP_SUB);
1537 dt_cg_node(dnp->dn_child, dlp, drp);
1542 dt_cg_node(dnp->dn_child, dlp, drp);
1548 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
1552 dt_cg_node(dnp->dn_child, dlp, drp);
1572 dt_irlist_append(dlp,
1581 dt_cg_node(dnp->dn_child, dlp, drp);
1596 dt_cg_setx(dlp, dnp->dn_reg, size);
1601 dt_cg_node(dnp->dn_child, dlp, drp);
1625 dt_irlist_append(dlp,
1632 dt_irlist_append(dlp,
1635 dlp->dl_last->di_extern = dnp->dn_xmember;
1640 dt_cg_node(dnp->dn_right, dlp, drp);
1645 dt_cg_node(dnp->dn_right, dlp, drp);
1647 dt_cg_typecast(dnp->dn_right, dnp, dlp, drp);
1653 dt_cg_node(dnp->dn_left, dlp, drp);
1677 dt_cg_node(mnp->dn_membexpr, dlp, drp);
1679 dt_cg_typecast(mnp->dn_membexpr, dnp, dlp, drp);
1712 dt_cg_setx(dlp, reg, m.ctm_offset / NBBY);
1717 dt_irlist_append(dlp,
1740 dt_irlist_append(dlp,
1744 dt_cg_field_get(dnp, dlp, drp, ctfp, &m);
1763 dt_irlist_append(dlp, dt_cg_node_alloc(DT_LBL_NONE, instr));
1779 dt_irlist_append(dlp,
1791 dt_cg_inline(dnp, dlp, drp);
1804 dt_cg_arglist(dnp->dn_ident, dnp->dn_args, dlp, drp);
1812 dt_irlist_append(dlp,
1825 dt_cg_array_op(dnp, dlp, drp);
1831 dt_cg_assoc_op(dnp, dlp, drp);
1833 dt_cg_array_op(dnp, dlp, drp);
1852 dt_irlist_append(dlp,
1871 dt_cg_xsetx(dlp, dnp->dn_ident,
1877 dt_irlist_append(dlp,
1893 dt_cg_setx(dlp, dnp->dn_reg, dnp->dn_value);