Lines Matching refs:right

183 static bool check_shift_count(struct expression *expr, struct expression *right)  in check_shift_count()  argument
186 long long count = get_longlong(right); in check_shift_count()
204 struct expression *left = expr->left, *right = expr->right; in simplify_int_binop() local
209 if (right->type != EXPR_VALUE) in simplify_int_binop()
211 r = right->value; in simplify_int_binop()
213 if (!check_shift_count(expr, right)) in simplify_int_binop()
218 l = left->value; r = right->value; in simplify_int_binop()
306 expr->taint = left->taint | right->taint; in simplify_int_binop()
320 struct expression *left = expr->left, *right = expr->right; in simplify_cmp_binop() local
324 if (left->type != EXPR_VALUE || right->type != EXPR_VALUE) in simplify_cmp_binop()
326 l = left->value; r = right->value; in simplify_cmp_binop()
346 expr->taint = left->taint | right->taint; in simplify_cmp_binop()
352 struct expression *left = expr->left, *right = expr->right; in simplify_float_binop() local
356 if (left->type != EXPR_FVALUE || right->type != EXPR_FVALUE) in simplify_float_binop()
360 r = right->fvalue; in simplify_float_binop()
401 struct expression *left = expr->left, *right = expr->right; in simplify_float_cmp() local
404 if (left->type != EXPR_FVALUE || right->type != EXPR_FVALUE) in simplify_float_cmp()
408 r = right->fvalue; in simplify_float_cmp()
427 cost += expand_expression(expr->right); in expand_binop()
438 struct expression *right; in expand_logical() local
461 right = expr->right; in expand_logical()
462 rcost = expand_expression(right); in expand_logical()
463 if (left->type == EXPR_VALUE && right->type == EXPR_VALUE) { in expand_logical()
469 expr->value = right->value != 0; in expand_logical()
470 expr->taint = left->taint | right->taint; in expand_logical()
492 cost += expand_expression(expr->right); in expand_comma()
497 *expr = *expr->right; in expand_comma()
507 static int compare_types(int op, struct symbol *left, struct symbol *right) in compare_types() argument
510 struct ctype c2 = {.base_type = right}; in compare_types()
517 return left->bit_size < right->bit_size; in compare_types()
519 return left->bit_size > right->bit_size; in compare_types()
521 return left->bit_size <= right->bit_size; in compare_types()
523 return left->bit_size >= right->bit_size; in compare_types()
530 struct expression *left = expr->left, *right = expr->right; in expand_compare() local
534 cost += expand_expression(right); in expand_compare()
536 if (left && right) { in expand_compare()
538 if (left->type == EXPR_TYPE && right->type == EXPR_TYPE) { in expand_compare()
541 expr->value = compare_types(op, left->symbol, right->symbol); in expand_compare()
588 struct expression *right; in check_assignment() local
593 right = expr->right; in check_assignment()
594 if (right->type != EXPR_VALUE) in check_assignment()
596 check_shift_count(expr, right); in check_assignment()
605 expand_expression(expr->right); in expand_assignment()
675 struct expression *right = unop->right; in expand_dereference() local
676 if (right->type == EXPR_VALUE) { in expand_dereference()
677 offset = right->value; in expand_dereference()
1355 expr = expr->right; in expr_truth_value()