Lines Matching refs:expr
461 eval_last_constant_dwarf_sub_expr(Dwarf_Op* expr,
7556 /// @param expr the pointer to allocate and fill with the resulting
7564 /// as value. In that case the expr and expr_len arguments are set to the
7569 Dwarf_Op** expr,
7580 bool result = (dwarf_getlocation(&attr, expr, &len) == 0);
7593 /// of a constant value onto the dwarf expr virtual machine (aka
7755 /// of a non-constant value onto the dwarf expr virtual machine (aka
7890 /// @param expr the array of the dwarf expression operations to consider.
7905 op_manipulates_stack(Dwarf_Op* expr,
7911 Dwarf_Op& op = expr[index];
8007 /// of an arithmetic or logic operation onto the dwarf expr virtual
8014 /// @param expr the array of the dwarf expression operations to consider.
8016 /// @param expr_len the lengths of @p expr array above.
8018 /// @param index the index of the operation to interpret, in @p expr.
8029 op_is_arith_logic(Dwarf_Op* expr,
8037 Dwarf_Op& op = expr[index];
8140 /// of a control flow operation onto the dwarf expr virtual machine
8147 /// @param expr the array of the dwarf expression operations to consider.
8149 /// @param expr_len the lengths of @p expr array above.
8151 /// @param index the index of the operation to interpret, in @p expr.
8162 op_is_control_flow(Dwarf_Op* expr,
8170 Dwarf_Op& op = expr[index];
8239 /// @param expr the DWARF expression to evaluate.
8241 /// @param expr_len the length of the expression @p expr.
8244 /// evaluation of @p expr, iff this function returns true.
8246 /// @return true iff the evaluation of @p expr went OK.
8248 eval_quickly(Dwarf_Op* expr,
8252 if (expr_len == 1 && (expr[0].atom == DW_OP_plus_uconst))
8254 value = expr[0].number;
8263 /// @param expr the DWARF expression to consider.
8281 eval_last_constant_dwarf_sub_expr(Dwarf_Op* expr,
8288 // expression contained in the DWARF expression 'expr'.
8294 if (op_is_arith_logic(expr, expr_len, index,
8296 || op_pushes_constant_value(expr, expr_len, index,
8298 || op_manipulates_stack(expr, expr_len, index,
8300 || op_pushes_non_constant_value(expr, expr_len, index,
8302 || op_is_control_flow(expr, expr_len, index,
8324 /// @param expr the DWARF expression to consider.
8335 eval_last_constant_dwarf_sub_expr(Dwarf_Op* expr,
8341 return eval_last_constant_dwarf_sub_expr(expr, expr_len, value,
8658 Dwarf_Op* expr = NULL;
8684 &expr, &expr_len))
8690 if (!eval_quickly(expr, expr_len, offset))
8693 if (!eval_last_constant_dwarf_sub_expr(expr, expr_len,
8735 Dwarf_Op* expr = NULL;
8747 if (dwarf_getlocation(&attr, &expr, &expr_len))
8755 if (!dwarf_getlocation_attr(&attr, expr, &result))
8760 address = expr->number;
8781 Dwarf_Op* expr = NULL;
8784 &expr, &expr_len))
8789 if (!eval_last_constant_dwarf_sub_expr(expr, expr_len, i, is_tls_addr))