Lines Matching refs:mode

62 	*do_expression(usage_t mode, struct expression *expr),
63 *do_statement(usage_t mode, struct statement *stmt);
70 static inline usage_t u_rval(usage_t mode) in u_rval() argument
72 return mode & (U_R_VAL | (U_MASK << U_SHIFT)) in u_rval()
76 static inline usage_t u_addr(usage_t mode) in u_addr() argument
78 return mode = mode & U_MASK in u_addr()
79 ? U_R_AOF | (mode & U_W_AOF) : 0; in u_addr()
89 static usage_t fix_mode(struct symbol *type, usage_t mode) in fix_mode() argument
91 mode &= (U_SELF | (U_SELF << U_SHIFT)); in fix_mode()
99 if (mode & U_MASK) in fix_mode()
100 mode &= U_SELF; in fix_mode()
104 if (mode & U_R_VAL) in fix_mode()
105 mode |= U_R_AOF; in fix_mode()
106 mode &= ~(U_R_VAL | U_W_AOF); in fix_mode()
109 if (mode & (U_MASK << U_SHIFT)) in fix_mode()
110 mode >>= U_SHIFT; in fix_mode()
111 else if (mode != U_W_VAL) in fix_mode()
112 mode = u_addr(mode); in fix_mode()
115 if (!(mode & U_R_AOF)) in fix_mode()
116 mode &= ~U_W_AOF; in fix_mode()
118 return mode; in fix_mode()
133 static struct symbol *report_member(usage_t mode, struct position *pos, in report_member() argument
139 reporter->r_member(fix_mode(ret, mode), pos, type, mem); in report_member()
144 static void report_implicit(usage_t mode, struct position *pos, struct symbol *type) in report_implicit() argument
153 reporter->r_member(mode, pos, type, NULL); in report_implicit()
156 report_implicit(mode, pos, base_type(mem))); in report_implicit()
179 static struct symbol *report_symbol(usage_t mode, struct expression *expr) in report_symbol() argument
185 return report_member(mode, &expr->pos, ret, expr->symbol); in report_symbol()
188 reporter->r_symbol(fix_mode(ret, mode), &expr->pos, sym); in report_symbol()
307 static struct symbol *do_expression(usage_t mode, struct expression *expr) in do_expression() argument
327 ret = do_statement(mode, expr->statement); in do_expression()
334 ret = do_expression(mode, expr->right); in do_expression()
341 mode = u_rval(mode); in do_expression()
342 do_expression(mode, expr->left); in do_expression()
343 do_expression(mode, expr->right); in do_expression()
347 ? U_R_VAL : U_R_VAL | mode, in do_expression()
349 ret = do_expression(mode, expr->cond_true); in do_expression()
350 ret = do_expression(mode, expr->cond_false); in do_expression()
362 mode |= U_W_VAL | U_R_VAL; in do_expression()
364 mode &= ~U_R_VAL; in do_expression()
365 ret = do_expression(mode, expr->left); in do_expression()
366 report_implicit(mode, &expr->pos, ret); in do_expression()
367 mode = expr->op == '=' in do_expression()
369 do_expression(mode, expr->right); in do_expression()
373 mode |= u_rval(mode); in do_expression()
374 l = do_expression(mode, expr->left); in do_expression()
375 r = do_expression(mode, expr->right); in do_expression()
390 mode |= U_W_VAL | U_R_VAL; in do_expression()
392 mode |= u_rval(mode); in do_expression()
394 ret = do_expression(mode, unop); in do_expression()
401 do_expression(u_addr(mode), unop); in do_expression()
406 if (mode & (U_MASK << U_SHIFT)) in do_expression()
407 mode |= U_R_VAL; in do_expression()
408 mode <<= U_SHIFT; in do_expression()
409 if (mode & (U_R_AOF << U_SHIFT)) in do_expression()
410 mode |= U_R_VAL; in do_expression()
411 if (mode & (U_W_VAL << U_SHIFT)) in do_expression()
412 mode |= U_W_AOF; in do_expression()
413 ret = do_expression(mode, unop); in do_expression()
423 p_mode = mode & U_SELF; in do_expression()
424 if (!(mode & U_MASK) && (mode & (U_MASK << U_SHIFT))) in do_expression()
428 ret = report_member(mode, &expr->pos, p_type, in do_expression()
447 ret = report_symbol(mode, expr); in do_expression()
453 static void do_asm_xputs(usage_t mode, struct expression_list *xputs) in do_asm_xputs() argument
459 do_expression(U_W_AOF | mode, expr)); in do_asm_xputs()
462 static struct symbol *do_statement(usage_t mode, struct statement *stmt) in do_statement() argument
478 ret = do_expression(mode, stmt->expression); in do_statement()
493 ret = do_statement(--count ? U_VOID : mode, st)); in do_statement()
522 do_statement(mode, stmt->label_statement); in do_statement()