diff options
Diffstat (limited to 'gcc/config/mep/mep.c')
-rw-r--r-- | gcc/config/mep/mep.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/gcc/config/mep/mep.c b/gcc/config/mep/mep.c index a946c9350aa..c18e7b7f04c 100644 --- a/gcc/config/mep/mep.c +++ b/gcc/config/mep/mep.c @@ -3620,14 +3620,12 @@ mep_expand_va_start (tree valist, rtx nextarg) expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); /* va_list.next_gp_limit = va_list.next_gp + 4 * ns; */ - u = fold_build2 (POINTER_PLUS_EXPR, ptr_type_node, u, - size_int (4 * ns)); + u = fold_build_pointer_plus_hwi (u, 4 * ns); t = build2 (MODIFY_EXPR, ptr_type_node, next_gp_limit, u); TREE_SIDE_EFFECTS (t) = 1; expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); - u = fold_build2 (POINTER_PLUS_EXPR, ptr_type_node, u, - size_int (8 * ((ns+1)/2))); + u = fold_build_pointer_plus_hwi (u, 8 * ((ns+1)/2)); /* va_list.next_cop = ROUND_UP(va_list.next_gp_limit,8); */ t = build2 (MODIFY_EXPR, ptr_type_node, next_cop, u); TREE_SIDE_EFFECTS (t) = 1; @@ -3715,12 +3713,10 @@ mep_gimplify_va_arg_expr (tree valist, tree type, gimplify_and_add (tmp, pre_p); } - tmp = build2 (POINTER_PLUS_EXPR, ptr_type_node, - unshare_expr (next_gp), size_int (4)); + tmp = fold_build_pointer_plus_hwi (unshare_expr (next_gp), 4); gimplify_assign (unshare_expr (next_gp), tmp, pre_p); - tmp = build2 (POINTER_PLUS_EXPR, ptr_type_node, - unshare_expr (next_cop), size_int (8)); + tmp = fold_build_pointer_plus_hwi (unshare_expr (next_cop), 8); gimplify_assign (unshare_expr (next_cop), tmp, pre_p); tmp = build1 (GOTO_EXPR, void_type_node, unshare_expr (label_sover)); @@ -3734,8 +3730,7 @@ mep_gimplify_va_arg_expr (tree valist, tree type, tmp = build2 (MODIFY_EXPR, void_type_node, res_addr, unshare_expr (next_stack)); gimplify_and_add (tmp, pre_p); - tmp = build2 (POINTER_PLUS_EXPR, ptr_type_node, - unshare_expr (next_stack), size_int (rsize)); + tmp = fold_build_pointer_plus_hwi (unshare_expr (next_stack), rsize); gimplify_assign (unshare_expr (next_stack), tmp, pre_p); /* - - */ |