Lines Matching refs:rp

332 dt_type_promote(dt_node_t *lp, dt_node_t *rp, ctf_file_t **ofp, ctf_id_t *otype)  in dt_type_promote()  argument
337 ctf_file_t *rfp = rp->dn_ctfp; in dt_type_promote()
338 ctf_id_t rtype = rp->dn_type; in dt_type_promote()
403 dt_node_promote(dt_node_t *lp, dt_node_t *rp, dt_node_t *dnp) in dt_node_promote() argument
405 dt_type_promote(lp, rp, &dnp->dn_ctfp, &dnp->dn_type); in dt_node_promote()
407 dt_node_attr_assign(dnp, dt_attr_min(lp->dn_attr, rp->dn_attr)); in dt_node_promote()
1051 dt_node_is_ptrcompat(const dt_node_t *lp, const dt_node_t *rp, in dt_node_is_ptrcompat() argument
1055 ctf_file_t *rfp = rp->dn_ctfp; in dt_node_is_ptrcompat()
1066 assert(rp->dn_flags & DT_NF_COOKED); in dt_node_is_ptrcompat()
1068 if (dt_node_is_dynamic(lp) || dt_node_is_dynamic(rp)) in dt_node_is_ptrcompat()
1072 rp_is_int = dt_node_is_integer(rp); in dt_node_is_ptrcompat()
1080 if (rp_is_int && (rp->dn_kind != DT_NODE_INT || rp->dn_value != 0)) in dt_node_is_ptrcompat()
1084 (lp->dn_flags & DT_NF_USERLAND) ^ (rp->dn_flags & DT_NF_USERLAND))) in dt_node_is_ptrcompat()
1106 rbase = ctf_type_resolve(rfp, rp->dn_type); in dt_node_is_ptrcompat()
1163 dt_node_is_argcompat(const dt_node_t *lp, const dt_node_t *rp) in dt_node_is_argcompat() argument
1166 ctf_file_t *rfp = rp->dn_ctfp; in dt_node_is_argcompat()
1169 assert(rp->dn_flags & DT_NF_COOKED); in dt_node_is_argcompat()
1171 if (dt_node_is_integer(lp) && dt_node_is_integer(rp)) in dt_node_is_argcompat()
1174 if (dt_node_is_strcompat(lp) && dt_node_is_strcompat(rp)) in dt_node_is_argcompat()
1177 if (dt_node_is_stack(lp) && dt_node_is_stack(rp)) in dt_node_is_argcompat()
1180 if (dt_node_is_symaddr(lp) && dt_node_is_symaddr(rp)) in dt_node_is_argcompat()
1183 if (dt_node_is_usymaddr(lp) && dt_node_is_usymaddr(rp)) in dt_node_is_argcompat()
1190 return (ctf_type_compat(lfp, lp->dn_type, rfp, rp->dn_type)); in dt_node_is_argcompat()
1192 return (dt_node_is_ptrcompat(lp, rp, NULL, NULL)); in dt_node_is_argcompat()
1921 dt_cast(dt_node_t *lp, dt_node_t *rp) in dt_cast() argument
1923 size_t srcsize = dt_node_type_size(rp); in dt_cast()
1928 rp->dn_value <<= n; in dt_cast()
1929 rp->dn_value >>= n; in dt_cast()
1934 rp->dn_value <<= n; in dt_cast()
1935 if (rp->dn_flags & DT_NF_SIGNED) { in dt_cast()
1936 rp->dn_value = (intmax_t)rp->dn_value >> s; in dt_cast()
1937 rp->dn_value >>= n - s; in dt_cast()
1939 rp->dn_value >>= n; in dt_cast()
1945 dt_node_op2(int op, dt_node_t *lp, dt_node_t *rp) in dt_node_op2() argument
1954 if (rp->dn_kind == DT_NODE_INT && rp->dn_value == 0 && in dt_node_op2()
1963 if (lp->dn_kind == DT_NODE_INT && rp->dn_kind == DT_NODE_INT) { in dt_node_op2()
1965 uintmax_t r = rp->dn_value; in dt_node_op2()
1987 dt_node_promote(lp, rp, dnp); in dt_node_op2()
1991 dt_node_promote(lp, rp, dnp); in dt_node_op2()
1995 dt_node_promote(lp, rp, dnp); in dt_node_op2()
2008 dt_node_promote(lp, rp, dnp); in dt_node_op2()
2017 dt_node_promote(lp, rp, dnp); in dt_node_op2()
2026 dt_node_promote(lp, rp, dnp); in dt_node_op2()
2035 dt_node_promote(lp, rp, dnp); in dt_node_op2()
2046 dt_node_attr_assign(rp, in dt_node_op2()
2047 dt_attr_min(lp->dn_attr, rp->dn_attr)); in dt_node_op2()
2052 dt_node_attr_assign(rp, in dt_node_op2()
2053 dt_attr_min(lp->dn_attr, rp->dn_attr)); in dt_node_op2()
2057 dt_node_promote(lp, rp, dnp); in dt_node_op2()
2061 dt_node_promote(lp, rp, dnp); in dt_node_op2()
2065 dt_node_promote(lp, rp, dnp); in dt_node_op2()
2068 dt_node_promote(lp, rp, dnp); in dt_node_op2()
2075 dt_node_promote(lp, rp, dnp); in dt_node_op2()
2088 dt_node_free(rp); in dt_node_op2()
2093 if (op == DT_TOK_LPAR && rp->dn_kind == DT_NODE_INT && in dt_node_op2()
2095 dt_cast(lp, rp); in dt_node_op2()
2096 dt_node_type_propagate(lp, rp); in dt_node_op2()
2097 dt_node_attr_assign(rp, dt_attr_min(lp->dn_attr, rp->dn_attr)); in dt_node_op2()
2100 return (rp); in dt_node_op2()
2111 dnp->dn_right = rp; in dt_node_op2()
2117 dt_node_op3(dt_node_t *expr, dt_node_t *lp, dt_node_t *rp) in dt_node_op3() argument
2122 return (expr->dn_value != 0 ? lp : rp); in dt_node_op3()
2128 dnp->dn_right = rp; in dt_node_op3()
3157 dt_node_t *rp = dnp->dn_right; in dt_assign_common() local
3160 if (rp->dn_kind == DT_NODE_INT) in dt_assign_common()
3161 dt_cast(lp, rp); in dt_assign_common()
3175 dt_node_attr_assign(dnp, dt_attr_min(lp->dn_attr, rp->dn_attr)); in dt_assign_common()
3183 dt_node_t *rp = dnp->dn_right; in dt_cook_op2() local
3251 rp = dnp->dn_right = dt_node_cook(rp, DT_IDFLG_REF); in dt_cook_op2()
3253 if (!dt_node_is_integer(lp) || !dt_node_is_integer(rp)) { in dt_cook_op2()
3258 dt_node_promote(lp, rp, dnp); /* see K&R[A7.11-13] */ in dt_cook_op2()
3264 rp = dnp->dn_right = dt_node_cook(rp, DT_IDFLG_REF); in dt_cook_op2()
3266 if (!dt_node_is_integer(lp) || !dt_node_is_integer(rp)) { in dt_cook_op2()
3272 dt_node_attr_assign(dnp, dt_attr_min(lp->dn_attr, rp->dn_attr)); in dt_cook_op2()
3277 rp = dnp->dn_right = dt_node_cook(rp, DT_IDFLG_REF); in dt_cook_op2()
3279 if (!dt_node_is_integer(lp) || !dt_node_is_integer(rp)) { in dt_cook_op2()
3284 dt_node_promote(lp, rp, dnp); /* see K&R[A7.6] */ in dt_cook_op2()
3290 rp = dnp->dn_right = dt_node_cook(rp, DT_IDFLG_REF); in dt_cook_op2()
3292 if (!dt_node_is_arith(lp) || !dt_node_is_arith(rp)) { in dt_cook_op2()
3297 dt_node_promote(lp, rp, dnp); /* see K&R[A7.6] */ in dt_cook_op2()
3304 rp = dnp->dn_right = dt_node_cook(rp, DT_IDFLG_REF); in dt_cook_op2()
3306 if (!dt_node_is_scalar(lp) || !dt_node_is_scalar(rp)) { in dt_cook_op2()
3313 dt_node_attr_assign(dnp, dt_attr_min(lp->dn_attr, rp->dn_attr)); in dt_cook_op2()
3335 if (kind == CTF_K_ENUM && rp->dn_kind == DT_NODE_IDENT && in dt_cook_op2()
3336 strchr(rp->dn_string, '`') == NULL && ctf_enum_value( in dt_cook_op2()
3337 lp->dn_ctfp, lp->dn_type, rp->dn_string, &val) == 0) { in dt_cook_op2()
3340 rp->dn_string)) != NULL) { in dt_cook_op2()
3344 opstr(op), rp->dn_string, in dt_cook_op2()
3349 free(rp->dn_string); in dt_cook_op2()
3350 rp->dn_string = NULL; in dt_cook_op2()
3351 rp->dn_kind = DT_NODE_INT; in dt_cook_op2()
3352 rp->dn_flags |= DT_NF_COOKED; in dt_cook_op2()
3353 rp->dn_op = DT_TOK_INT; in dt_cook_op2()
3354 rp->dn_value = (intmax_t)val; in dt_cook_op2()
3356 dt_node_type_assign(rp, lp->dn_ctfp, lp->dn_type, in dt_cook_op2()
3358 dt_node_attr_assign(rp, _dtrace_symattr); in dt_cook_op2()
3361 rp = dnp->dn_right = dt_node_cook(rp, DT_IDFLG_REF); in dt_cook_op2()
3375 rp->dn_ctfp, rp->dn_type)) in dt_cook_op2()
3377 else if (dt_node_is_integer(lp) && dt_node_is_integer(rp)) in dt_cook_op2()
3379 else if (dt_node_is_strcompat(lp) && dt_node_is_strcompat(rp) && in dt_cook_op2()
3380 (dt_node_is_string(lp) || dt_node_is_string(rp))) in dt_cook_op2()
3382 else if (dt_node_is_ptrcompat(lp, rp, NULL, NULL) == 0) { in dt_cook_op2()
3386 dt_node_type_name(rp, n2, sizeof (n2))); in dt_cook_op2()
3391 dt_node_attr_assign(dnp, dt_attr_min(lp->dn_attr, rp->dn_attr)); in dt_cook_op2()
3405 rp = dnp->dn_right = dt_node_cook(rp, DT_IDFLG_REF); in dt_cook_op2()
3411 rp_is_ptr = dt_node_is_string(rp) || in dt_cook_op2()
3412 (dt_node_is_pointer(rp) && !dt_node_is_vfptr(rp)); in dt_cook_op2()
3413 rp_is_int = dt_node_is_integer(rp); in dt_cook_op2()
3416 dt_type_promote(lp, rp, &ctfp, &type); in dt_cook_op2()
3423 ctfp = rp->dn_ctfp; in dt_cook_op2()
3424 type = rp->dn_type; in dt_cook_op2()
3425 uref = rp->dn_flags & DT_NF_USERLAND; in dt_cook_op2()
3427 dt_node_is_ptrcompat(lp, rp, NULL, NULL)) { in dt_cook_op2()
3435 dt_node_type_name(rp, n2, sizeof (n2))); in dt_cook_op2()
3439 dt_node_attr_assign(dnp, dt_attr_min(lp->dn_attr, rp->dn_attr)); in dt_cook_op2()
3460 rp = dnp->dn_right = in dt_cook_op2()
3461 dt_node_cook(rp, DT_IDFLG_REF | DT_IDFLG_MOD); in dt_cook_op2()
3463 if (!dt_node_is_integer(lp) || !dt_node_is_integer(rp)) { in dt_cook_op2()
3479 rp = dnp->dn_right = in dt_cook_op2()
3480 dt_node_cook(rp, DT_IDFLG_REF | DT_IDFLG_MOD); in dt_cook_op2()
3482 if (!dt_node_is_arith(lp) || !dt_node_is_arith(rp)) { in dt_cook_op2()
3506 rp = dnp->dn_right = dt_node_cook(rp, DT_IDFLG_REF); in dt_cook_op2()
3521 if (rp->dn_kind != DT_NODE_FUNC || in dt_cook_op2()
3522 rp->dn_ident->di_kind != DT_IDENT_AGGFUNC) { in dt_cook_op2()
3528 if (oid != NULL && oid != rp->dn_ident) { in dt_cook_op2()
3533 rp->dn_ident->di_name, aname, oid->di_name, in dt_cook_op2()
3536 lp->dn_ident->di_iarg = rp->dn_ident; in dt_cook_op2()
3549 lp->dn_aggfun = rp; in dt_cook_op2()
3562 if ((idp = dt_node_resolve(rp, DT_IDENT_XLSOU)) != NULL) { in dt_cook_op2()
3567 ctfp = rp->dn_ctfp; in dt_cook_op2()
3568 type = rp->dn_type; in dt_cook_op2()
3569 uref = rp->dn_flags & DT_NF_USERLAND; in dt_cook_op2()
3612 if (dt_node_is_argcompat(lp, rp)) in dt_cook_op2()
3618 dt_node_type_name(rp, n2, sizeof (n2))); in dt_cook_op2()
3631 rp = dnp->dn_right = in dt_cook_op2()
3632 dt_node_cook(rp, DT_IDFLG_REF | DT_IDFLG_MOD); in dt_cook_op2()
3634 if (dt_node_is_string(lp) || dt_node_is_string(rp)) { in dt_cook_op2()
3638 dt_node_type_name(rp, n2, sizeof (n2))); in dt_cook_op2()
3647 dt_node_is_integer(rp) == 0) { in dt_cook_op2()
3652 } else if (dt_node_is_integer(rp) == 0 && in dt_cook_op2()
3653 dt_node_is_ptrcompat(lp, rp, NULL, NULL) == 0) { in dt_cook_op2()
3658 dt_node_type_name(rp, n2, sizeof (n2))); in dt_cook_op2()
3680 if (rp->dn_kind != DT_NODE_VAR) { in dt_cook_op2()
3681 dt_xcook_ident(rp, dhp, in dt_cook_op2()
3686 rp = dt_node_cook(rp, idflags); in dt_cook_op2()
3691 return (rp); in dt_cook_op2()
3698 if (rp->dn_kind != DT_NODE_IDENT) { in dt_cook_op2()
3711 if (dt_xlator_member(dxp, rp->dn_string) == NULL) { in dt_cook_op2()
3714 "for member: %s\n", rp->dn_string); in dt_cook_op2()
3773 if (ctf_member_info(ctfp, type, rp->dn_string, &m) == CTF_ERR) { in dt_cook_op2()
3775 "%s is not a member of %s\n", rp->dn_string, in dt_cook_op2()
3823 lp->dn_aggtup = rp; in dt_cook_op2()
3887 dnp->dn_args = rp; in dt_cook_op2()
3898 rp = dnp->dn_right = dt_node_cook(rp, DT_IDFLG_REF); in dt_cook_op2()
3899 dxp = dt_xlator_lookup(dtp, rp, lp, DT_XLATE_FUZZY); in dt_cook_op2()
3904 dt_node_type_name(rp, n1, sizeof (n1)), in dt_cook_op2()
3912 dt_attr_min(rp->dn_attr, dnp->dn_ident->di_attr)); in dt_cook_op2()
3921 rp = dnp->dn_right = dt_node_cook(rp, DT_IDFLG_REF); in dt_cook_op2()
3926 rtype = ctf_type_resolve(rp->dn_ctfp, rp->dn_type); in dt_cook_op2()
3927 rkind = ctf_type_kind(rp->dn_ctfp, rtype); in dt_cook_op2()
3937 rp->dn_ctfp, rp->dn_type)) in dt_cook_op2()
3940 (dt_node_is_scalar(rp) || rkind == CTF_K_FUNCTION)) in dt_cook_op2()
3944 else if (lkind == CTF_K_POINTER && dt_node_is_pointer(rp)) in dt_cook_op2()
3946 else if (dt_node_is_string(lp) && (dt_node_is_scalar(rp) || in dt_cook_op2()
3947 dt_node_is_pointer(rp) || dt_node_is_strcompat(rp))) in dt_cook_op2()
3952 dt_node_type_name(rp, n1, sizeof (n1)), in dt_cook_op2()
3957 dt_node_attr_assign(dnp, dt_attr_min(lp->dn_attr, rp->dn_attr)); in dt_cook_op2()
3971 rp = dnp->dn_right = dt_node_cook(rp, DT_IDFLG_REF); in dt_cook_op2()
3973 if (dt_node_is_dynamic(lp) || dt_node_is_dynamic(rp)) { in dt_cook_op2()
3978 if (dt_node_is_actfunc(lp) || dt_node_is_actfunc(rp)) { in dt_cook_op2()
3983 dt_node_type_propagate(rp, dnp); /* see K&R[A7.18] */ in dt_cook_op2()
3984 dt_node_attr_assign(dnp, dt_attr_min(lp->dn_attr, rp->dn_attr)); in dt_cook_op2()
4001 if (rp->dn_list != NULL) { in dt_cook_op2()
4032 dt_node_t *lp, *rp; in dt_cook_op3() local
4038 rp = dnp->dn_right = dt_node_cook(dnp->dn_right, DT_IDFLG_REF); in dt_cook_op3()
4045 if (dt_node_is_dynamic(lp) || dt_node_is_dynamic(rp)) { in dt_cook_op3()
4056 rp->dn_ctfp, rp->dn_type)) { in dt_cook_op3()
4059 } else if (dt_node_is_integer(lp) && dt_node_is_integer(rp)) { in dt_cook_op3()
4060 dt_type_promote(lp, rp, &ctfp, &type); in dt_cook_op3()
4061 } else if (dt_node_is_strcompat(lp) && dt_node_is_strcompat(rp) && in dt_cook_op3()
4062 (dt_node_is_string(lp) || dt_node_is_string(rp))) { in dt_cook_op3()
4065 } else if (dt_node_is_ptrcompat(lp, rp, &ctfp, &type) == 0) { in dt_cook_op3()
4070 if (dt_node_is_actfunc(lp) || dt_node_is_actfunc(rp)) { in dt_cook_op3()
4077 dt_attr_min(lp->dn_attr, rp->dn_attr))); in dt_cook_op3()
4593 dt_node_link(dt_node_t *lp, dt_node_t *rp) in dt_node_link() argument
4598 return (rp); in dt_node_link()
4599 else if (rp == NULL) in dt_node_link()
4605 dnp->dn_list = rp; in dt_node_link()