diff options
author | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-12-02 17:06:50 +0000 |
---|---|---|
committer | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-12-02 17:06:50 +0000 |
commit | ed03eadb804efe99a3359fda6d489b597189d2b3 (patch) | |
tree | 90f1caf200cda3d26483d4ff07ddcad996ff4c51 | |
parent | c76187f7adc232ed244feed4b9c39c1bddee6a1d (diff) | |
download | gcc-ed03eadb804efe99a3359fda6d489b597189d2b3.tar.gz |
2005-12-02 Richard Guenther <rguenther@suse.de>
* config/alpha/alpha.c (alpha_va_start, alpha_gimplify_va_arg_1i,
alpha_gimplify_va_arg): Use buildN and fold_buildN where applicable.
* config/frv/frv.c (frv_expand_builtin_va_start): Likewise.
* config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise.
* config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
* config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
* config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg):
Likewise.
* config/sh/sh.c (sh_va_start, sh_gimplify_va_arg_expr,
sh_adjust_unroll_max): Likewise.
* config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
* config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
* config/xtensa/xtensa.c (xtensa_va_start, xtensa_gimplify_va_arg_expr):
Likewise.
* config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
Likewise.
* config/mips/mips.c (mips_va_start, mips_gimplify_va_arg_expr):
Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107906 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 21 | ||||
-rw-r--r-- | gcc/config/alpha/alpha.c | 56 | ||||
-rw-r--r-- | gcc/config/c4x/c4x.c | 4 | ||||
-rw-r--r-- | gcc/config/frv/frv.c | 4 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 44 | ||||
-rw-r--r-- | gcc/config/ia64/ia64.c | 10 | ||||
-rw-r--r-- | gcc/config/mips/mips.c | 94 | ||||
-rw-r--r-- | gcc/config/pa/pa.c | 8 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 40 | ||||
-rw-r--r-- | gcc/config/s390/s390.c | 34 | ||||
-rw-r--r-- | gcc/config/sh/sh.c | 108 | ||||
-rw-r--r-- | gcc/config/stormy16/stormy16.c | 64 | ||||
-rw-r--r-- | gcc/config/xtensa/xtensa.c | 76 |
13 files changed, 292 insertions, 271 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0f20adc6b4a..0185109a9ce 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,26 @@ 2005-12-02 Richard Guenther <rguenther@suse.de> + * config/alpha/alpha.c (alpha_va_start, alpha_gimplify_va_arg_1i, + alpha_gimplify_va_arg): Use buildN and fold_buildN where applicable. + * config/frv/frv.c (frv_expand_builtin_va_start): Likewise. + * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise. + * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise. + * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise. + * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg): + Likewise. + * config/sh/sh.c (sh_va_start, sh_gimplify_va_arg_expr, + sh_adjust_unroll_max): Likewise. + * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise. + * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise. + * config/xtensa/xtensa.c (xtensa_va_start, xtensa_gimplify_va_arg_expr): + Likewise. + * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start): + Likewise. + * config/mips/mips.c (mips_va_start, mips_gimplify_va_arg_expr): + Likewise. + +2005-12-02 Richard Guenther <rguenther@suse.de> + * tree-vrp.c (build_assert_expr_for, process_assert_insertions_for, simplify_cond_using_ranges): Use buildN instead of build. * tree-tailcall.c (adjust_accumulator_values, diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c index 840a933da8a..6824d077570 100644 --- a/gcc/config/alpha/alpha.c +++ b/gcc/config/alpha/alpha.c @@ -6148,8 +6148,8 @@ alpha_va_start (tree valist, rtx nextarg ATTRIBUTE_UNUSED) { nextarg = plus_constant (nextarg, offset); nextarg = plus_constant (nextarg, NUM_ARGS * UNITS_PER_WORD); - t = build (MODIFY_EXPR, TREE_TYPE (valist), valist, - make_tree (ptr_type_node, nextarg)); + t = build2 (MODIFY_EXPR, TREE_TYPE (valist), valist, + make_tree (ptr_type_node, nextarg)); TREE_SIDE_EFFECTS (t) = 1; expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); @@ -6159,20 +6159,20 @@ alpha_va_start (tree valist, rtx nextarg ATTRIBUTE_UNUSED) base_field = TYPE_FIELDS (TREE_TYPE (valist)); offset_field = TREE_CHAIN (base_field); - base_field = build (COMPONENT_REF, TREE_TYPE (base_field), - valist, base_field, NULL_TREE); - offset_field = build (COMPONENT_REF, TREE_TYPE (offset_field), - valist, offset_field, NULL_TREE); + base_field = build3 (COMPONENT_REF, TREE_TYPE (base_field), + valist, base_field, NULL_TREE); + offset_field = build3 (COMPONENT_REF, TREE_TYPE (offset_field), + valist, offset_field, NULL_TREE); t = make_tree (ptr_type_node, virtual_incoming_args_rtx); - t = build (PLUS_EXPR, ptr_type_node, t, - build_int_cst (NULL_TREE, offset)); - t = build (MODIFY_EXPR, TREE_TYPE (base_field), base_field, t); + t = build2 (PLUS_EXPR, ptr_type_node, t, + build_int_cst (NULL_TREE, offset)); + t = build2 (MODIFY_EXPR, TREE_TYPE (base_field), base_field, t); TREE_SIDE_EFFECTS (t) = 1; expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); t = build_int_cst (NULL_TREE, NUM_ARGS * UNITS_PER_WORD); - t = build (MODIFY_EXPR, TREE_TYPE (offset_field), offset_field, t); + t = build2 (MODIFY_EXPR, TREE_TYPE (offset_field), offset_field, t); TREE_SIDE_EFFECTS (t) = 1; expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); } @@ -6188,8 +6188,8 @@ alpha_gimplify_va_arg_1 (tree type, tree base, tree offset, tree *pre_p) if (targetm.calls.must_pass_in_stack (TYPE_MODE (type), type)) { t = build_int_cst (TREE_TYPE (offset), 6*8); - t = build (MODIFY_EXPR, TREE_TYPE (offset), offset, - build (MAX_EXPR, TREE_TYPE (offset), offset, t)); + t = build2 (MODIFY_EXPR, TREE_TYPE (offset), offset, + build2 (MAX_EXPR, TREE_TYPE (offset), offset, t)); gimplify_and_add (t, pre_p); } @@ -6210,23 +6210,23 @@ alpha_gimplify_va_arg_1 (tree type, tree base, tree offset, tree *pre_p) imag_part = alpha_gimplify_va_arg_1 (TREE_TYPE (type), base, offset, pre_p); - return build (COMPLEX_EXPR, type, real_temp, imag_part); + return build2 (COMPLEX_EXPR, type, real_temp, imag_part); } else if (TREE_CODE (type) == REAL_TYPE) { tree fpaddend, cond, fourtyeight; fourtyeight = build_int_cst (TREE_TYPE (addend), 6*8); - fpaddend = fold (build (MINUS_EXPR, TREE_TYPE (addend), - addend, fourtyeight)); - cond = fold (build (LT_EXPR, boolean_type_node, addend, fourtyeight)); - addend = fold (build (COND_EXPR, TREE_TYPE (addend), cond, - fpaddend, addend)); + fpaddend = fold_build2 (MINUS_EXPR, TREE_TYPE (addend), + addend, fourtyeight); + cond = fold_build2 (LT_EXPR, boolean_type_node, addend, fourtyeight); + addend = fold_build3 (COND_EXPR, TREE_TYPE (addend), cond, + fpaddend, addend); } /* Build the final address and force that value into a temporary. */ - addr = build (PLUS_EXPR, ptr_type, fold_convert (ptr_type, base), - fold_convert (ptr_type, addend)); + addr = build2 (PLUS_EXPR, ptr_type, fold_convert (ptr_type, base), + fold_convert (ptr_type, addend)); internal_post = NULL; gimplify_expr (&addr, pre_p, &internal_post, is_gimple_val, fb_rvalue); append_to_statement_list (internal_post, pre_p); @@ -6242,8 +6242,8 @@ alpha_gimplify_va_arg_1 (tree type, tree base, tree offset, tree *pre_p) t = size_binop (MULT_EXPR, t, size_int (8)); } t = fold_convert (TREE_TYPE (offset), t); - t = build (MODIFY_EXPR, void_type_node, offset, - build (PLUS_EXPR, TREE_TYPE (offset), offset, t)); + t = build2 (MODIFY_EXPR, void_type_node, offset, + build2 (PLUS_EXPR, TREE_TYPE (offset), offset, t)); gimplify_and_add (t, pre_p); return build_va_arg_indirect_ref (addr); @@ -6260,10 +6260,10 @@ alpha_gimplify_va_arg (tree valist, tree type, tree *pre_p, tree *post_p) base_field = TYPE_FIELDS (va_list_type_node); offset_field = TREE_CHAIN (base_field); - base_field = build (COMPONENT_REF, TREE_TYPE (base_field), - valist, base_field, NULL_TREE); - offset_field = build (COMPONENT_REF, TREE_TYPE (offset_field), - valist, offset_field, NULL_TREE); + base_field = build3 (COMPONENT_REF, TREE_TYPE (base_field), + valist, base_field, NULL_TREE); + offset_field = build3 (COMPONENT_REF, TREE_TYPE (offset_field), + valist, offset_field, NULL_TREE); /* Pull the fields of the structure out into temporaries. Since we never modify the base field, we can use a formal temporary. Sign-extend the @@ -6282,8 +6282,8 @@ alpha_gimplify_va_arg (tree valist, tree type, tree *pre_p, tree *post_p) r = alpha_gimplify_va_arg_1 (type, base, offset, pre_p); /* Stuff the offset temporary back into its field. */ - t = build (MODIFY_EXPR, void_type_node, offset_field, - fold_convert (TREE_TYPE (offset_field), offset)); + t = build2 (MODIFY_EXPR, void_type_node, offset_field, + fold_convert (TREE_TYPE (offset_field), offset)); gimplify_and_add (t, pre_p); if (indirect) diff --git a/gcc/config/c4x/c4x.c b/gcc/config/c4x/c4x.c index 52be551cb7b..3757523a620 100644 --- a/gcc/config/c4x/c4x.c +++ b/gcc/config/c4x/c4x.c @@ -722,8 +722,8 @@ c4x_gimplify_va_arg_expr (tree valist, tree type, if (indirect) type = build_pointer_type (type); - t = build (PREDECREMENT_EXPR, TREE_TYPE (valist), valist, - build_int_cst (NULL_TREE, int_size_in_bytes (type))); + t = build2 (PREDECREMENT_EXPR, TREE_TYPE (valist), valist, + build_int_cst (NULL_TREE, int_size_in_bytes (type))); t = fold_convert (build_pointer_type (type), t); t = build_va_arg_indirect_ref (t); diff --git a/gcc/config/frv/frv.c b/gcc/config/frv/frv.c index 0731302618b..4df467a3da4 100644 --- a/gcc/config/frv/frv.c +++ b/gcc/config/frv/frv.c @@ -2203,8 +2203,8 @@ frv_expand_builtin_va_start (tree valist, rtx nextarg) debug_rtx (nextarg); } - t = build (MODIFY_EXPR, TREE_TYPE (valist), valist, - make_tree (ptr_type_node, nextarg)); + t = build2 (MODIFY_EXPR, TREE_TYPE (valist), valist, + make_tree (ptr_type_node, nextarg)); TREE_SIDE_EFFECTS (t) = 1; expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index d4c6ea072d6..5a394ed4bd9 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -3804,10 +3804,10 @@ ix86_va_start (tree valist, rtx nextarg) f_sav = TREE_CHAIN (f_ovf); valist = build1 (INDIRECT_REF, TREE_TYPE (TREE_TYPE (valist)), valist); - gpr = build (COMPONENT_REF, TREE_TYPE (f_gpr), valist, f_gpr, NULL_TREE); - fpr = build (COMPONENT_REF, TREE_TYPE (f_fpr), valist, f_fpr, NULL_TREE); - ovf = build (COMPONENT_REF, TREE_TYPE (f_ovf), valist, f_ovf, NULL_TREE); - sav = build (COMPONENT_REF, TREE_TYPE (f_sav), valist, f_sav, NULL_TREE); + gpr = build3 (COMPONENT_REF, TREE_TYPE (f_gpr), valist, f_gpr, NULL_TREE); + fpr = build3 (COMPONENT_REF, TREE_TYPE (f_fpr), valist, f_fpr, NULL_TREE); + ovf = build3 (COMPONENT_REF, TREE_TYPE (f_ovf), valist, f_ovf, NULL_TREE); + sav = build3 (COMPONENT_REF, TREE_TYPE (f_sav), valist, f_sav, NULL_TREE); /* Count number of gp and fp argument registers used. */ words = current_function_args_info.words; @@ -3820,16 +3820,16 @@ ix86_va_start (tree valist, rtx nextarg) if (cfun->va_list_gpr_size) { - t = build (MODIFY_EXPR, TREE_TYPE (gpr), gpr, - build_int_cst (NULL_TREE, n_gpr * 8)); + t = build2 (MODIFY_EXPR, TREE_TYPE (gpr), gpr, + build_int_cst (NULL_TREE, n_gpr * 8)); TREE_SIDE_EFFECTS (t) = 1; expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); } if (cfun->va_list_fpr_size) { - t = build (MODIFY_EXPR, TREE_TYPE (fpr), fpr, - build_int_cst (NULL_TREE, n_fpr * 16 + 8*REGPARM_MAX)); + t = build2 (MODIFY_EXPR, TREE_TYPE (fpr), fpr, + build_int_cst (NULL_TREE, n_fpr * 16 + 8*REGPARM_MAX)); TREE_SIDE_EFFECTS (t) = 1; expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); } @@ -3837,9 +3837,9 @@ ix86_va_start (tree valist, rtx nextarg) /* Find the overflow area. */ t = make_tree (TREE_TYPE (ovf), virtual_incoming_args_rtx); if (words != 0) - t = build (PLUS_EXPR, TREE_TYPE (ovf), t, - build_int_cst (NULL_TREE, words * UNITS_PER_WORD)); - t = build (MODIFY_EXPR, TREE_TYPE (ovf), ovf, t); + t = build2 (PLUS_EXPR, TREE_TYPE (ovf), t, + build_int_cst (NULL_TREE, words * UNITS_PER_WORD)); + t = build2 (MODIFY_EXPR, TREE_TYPE (ovf), ovf, t); TREE_SIDE_EFFECTS (t) = 1; expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); @@ -3848,7 +3848,7 @@ ix86_va_start (tree valist, rtx nextarg) /* Find the register save area. Prologue of the function save it right above stack frame. */ t = make_tree (TREE_TYPE (sav), frame_pointer_rtx); - t = build (MODIFY_EXPR, TREE_TYPE (sav), sav, t); + t = build2 (MODIFY_EXPR, TREE_TYPE (sav), sav, t); TREE_SIDE_EFFECTS (t) = 1; expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); } @@ -3880,10 +3880,10 @@ ix86_gimplify_va_arg (tree valist, tree type, tree *pre_p, tree *post_p) f_sav = TREE_CHAIN (f_ovf); valist = build_va_arg_indirect_ref (valist); - gpr = build (COMPONENT_REF, TREE_TYPE (f_gpr), valist, f_gpr, NULL_TREE); - fpr = build (COMPONENT_REF, TREE_TYPE (f_fpr), valist, f_fpr, NULL_TREE); - ovf = build (COMPONENT_REF, TREE_TYPE (f_ovf), valist, f_ovf, NULL_TREE); - sav = build (COMPONENT_REF, TREE_TYPE (f_sav), valist, f_sav, NULL_TREE); + gpr = build3 (COMPONENT_REF, TREE_TYPE (f_gpr), valist, f_gpr, NULL_TREE); + fpr = build3 (COMPONENT_REF, TREE_TYPE (f_fpr), valist, f_fpr, NULL_TREE); + ovf = build3 (COMPONENT_REF, TREE_TYPE (f_ovf), valist, f_ovf, NULL_TREE); + sav = build3 (COMPONENT_REF, TREE_TYPE (f_sav), valist, f_sav, NULL_TREE); indirect_p = pass_by_reference (NULL, TYPE_MODE (type), type, false); if (indirect_p) @@ -3965,7 +3965,7 @@ ix86_gimplify_va_arg (tree valist, tree type, tree *pre_p, tree *post_p) (REGPARM_MAX - needed_intregs + 1) * 8); t = build2 (GE_EXPR, boolean_type_node, gpr, t); t2 = build1 (GOTO_EXPR, void_type_node, lab_false); - t = build (COND_EXPR, void_type_node, t, t2, NULL_TREE); + t = build3 (COND_EXPR, void_type_node, t, t2, NULL_TREE); gimplify_and_add (t, pre_p); } if (needed_sseregs) @@ -3975,7 +3975,7 @@ ix86_gimplify_va_arg (tree valist, tree type, tree *pre_p, tree *post_p) + REGPARM_MAX * 8); t = build2 (GE_EXPR, boolean_type_node, fpr, t); t2 = build1 (GOTO_EXPR, void_type_node, lab_false); - t = build (COND_EXPR, void_type_node, t, t2, NULL_TREE); + t = build3 (COND_EXPR, void_type_node, t, t2, NULL_TREE); gimplify_and_add (t, pre_p); } @@ -4072,10 +4072,10 @@ ix86_gimplify_va_arg (tree valist, tree type, tree *pre_p, tree *post_p) else { HOST_WIDE_INT align = FUNCTION_ARG_BOUNDARY (VOIDmode, type) / 8; - t = build (PLUS_EXPR, TREE_TYPE (ovf), ovf, - build_int_cst (TREE_TYPE (ovf), align - 1)); - t = build (BIT_AND_EXPR, TREE_TYPE (t), t, - build_int_cst (TREE_TYPE (t), -align)); + t = build2 (PLUS_EXPR, TREE_TYPE (ovf), ovf, + build_int_cst (TREE_TYPE (ovf), align - 1)); + t = build2 (BIT_AND_EXPR, TREE_TYPE (t), t, + build_int_cst (TREE_TYPE (t), -align)); } gimplify_expr (&t, pre_p, NULL, is_gimple_val, fb_rvalue); diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c index 95a4cdbd39f..7b9389bbf57 100644 --- a/gcc/config/ia64/ia64.c +++ b/gcc/config/ia64/ia64.c @@ -4260,11 +4260,11 @@ ia64_gimplify_va_arg (tree valist, tree type, tree *pre_p, tree *post_p) if ((TREE_CODE (type) == REAL_TYPE || TREE_CODE (type) == INTEGER_TYPE) ? int_size_in_bytes (type) > 8 : TYPE_ALIGN (type) > 8 * BITS_PER_UNIT) { - tree t = build (PLUS_EXPR, TREE_TYPE (valist), valist, - build_int_cst (NULL_TREE, 2 * UNITS_PER_WORD - 1)); - t = build (BIT_AND_EXPR, TREE_TYPE (t), t, - build_int_cst (NULL_TREE, -2 * UNITS_PER_WORD)); - t = build (MODIFY_EXPR, TREE_TYPE (valist), valist, t); + tree t = build2 (PLUS_EXPR, TREE_TYPE (valist), valist, + build_int_cst (NULL_TREE, 2 * UNITS_PER_WORD - 1)); + t = build2 (BIT_AND_EXPR, TREE_TYPE (t), t, + build_int_cst (NULL_TREE, -2 * UNITS_PER_WORD)); + t = build2 (MODIFY_EXPR, TREE_TYPE (valist), valist, t); gimplify_and_add (t, pre_p); } diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index 154ec302afa..733b9c6b7be 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -4092,31 +4092,31 @@ mips_va_start (tree valist, rtx nextarg) f_goff = TREE_CHAIN (f_ftop); f_foff = TREE_CHAIN (f_goff); - ovfl = build (COMPONENT_REF, TREE_TYPE (f_ovfl), valist, f_ovfl, - NULL_TREE); - gtop = build (COMPONENT_REF, TREE_TYPE (f_gtop), valist, f_gtop, - NULL_TREE); - ftop = build (COMPONENT_REF, TREE_TYPE (f_ftop), valist, f_ftop, - NULL_TREE); - goff = build (COMPONENT_REF, TREE_TYPE (f_goff), valist, f_goff, - NULL_TREE); - foff = build (COMPONENT_REF, TREE_TYPE (f_foff), valist, f_foff, - NULL_TREE); + ovfl = build3 (COMPONENT_REF, TREE_TYPE (f_ovfl), valist, f_ovfl, + NULL_TREE); + gtop = build3 (COMPONENT_REF, TREE_TYPE (f_gtop), valist, f_gtop, + NULL_TREE); + ftop = build3 (COMPONENT_REF, TREE_TYPE (f_ftop), valist, f_ftop, + NULL_TREE); + goff = build3 (COMPONENT_REF, TREE_TYPE (f_goff), valist, f_goff, + NULL_TREE); + foff = build3 (COMPONENT_REF, TREE_TYPE (f_foff), valist, f_foff, + NULL_TREE); /* Emit code to initialize OVFL, which points to the next varargs stack argument. CUM->STACK_WORDS gives the number of stack words used by named arguments. */ t = make_tree (TREE_TYPE (ovfl), virtual_incoming_args_rtx); if (cum->stack_words > 0) - t = build (PLUS_EXPR, TREE_TYPE (ovfl), t, - build_int_cst (NULL_TREE, - cum->stack_words * UNITS_PER_WORD)); - t = build (MODIFY_EXPR, TREE_TYPE (ovfl), ovfl, t); + t = build2 (PLUS_EXPR, TREE_TYPE (ovfl), t, + build_int_cst (NULL_TREE, + cum->stack_words * UNITS_PER_WORD)); + t = build2 (MODIFY_EXPR, TREE_TYPE (ovfl), ovfl, t); expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); /* Emit code to initialize GTOP, the top of the GPR save area. */ t = make_tree (TREE_TYPE (gtop), virtual_incoming_args_rtx); - t = build (MODIFY_EXPR, TREE_TYPE (gtop), gtop, t); + t = build2 (MODIFY_EXPR, TREE_TYPE (gtop), gtop, t); expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); /* Emit code to initialize FTOP, the top of the FPR save area. @@ -4126,21 +4126,21 @@ mips_va_start (tree valist, rtx nextarg) fpr_offset = gpr_save_area_size + UNITS_PER_FPVALUE - 1; fpr_offset &= ~(UNITS_PER_FPVALUE - 1); if (fpr_offset) - t = build (PLUS_EXPR, TREE_TYPE (ftop), t, - build_int_cst (NULL_TREE, -fpr_offset)); - t = build (MODIFY_EXPR, TREE_TYPE (ftop), ftop, t); + t = build2 (PLUS_EXPR, TREE_TYPE (ftop), t, + build_int_cst (NULL_TREE, -fpr_offset)); + t = build2 (MODIFY_EXPR, TREE_TYPE (ftop), ftop, t); expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); /* Emit code to initialize GOFF, the offset from GTOP of the next GPR argument. */ - t = build (MODIFY_EXPR, TREE_TYPE (goff), goff, - build_int_cst (NULL_TREE, gpr_save_area_size)); + t = build2 (MODIFY_EXPR, TREE_TYPE (goff), goff, + build_int_cst (NULL_TREE, gpr_save_area_size)); expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); /* Likewise emit code to initialize FOFF, the offset from FTOP of the next FPR argument. */ - t = build (MODIFY_EXPR, TREE_TYPE (foff), foff, - build_int_cst (NULL_TREE, fpr_save_area_size)); + t = build2 (MODIFY_EXPR, TREE_TYPE (foff), foff, + build_int_cst (NULL_TREE, fpr_save_area_size)); expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); } else @@ -4214,16 +4214,16 @@ mips_gimplify_va_arg_expr (tree valist, tree type, tree *pre_p, tree *post_p) [1] and [9] can sometimes be optimized away. */ - ovfl = build (COMPONENT_REF, TREE_TYPE (f_ovfl), valist, f_ovfl, - NULL_TREE); + ovfl = build3 (COMPONENT_REF, TREE_TYPE (f_ovfl), valist, f_ovfl, + NULL_TREE); if (GET_MODE_CLASS (TYPE_MODE (type)) == MODE_FLOAT && GET_MODE_SIZE (TYPE_MODE (type)) <= UNITS_PER_FPVALUE) { - top = build (COMPONENT_REF, TREE_TYPE (f_ftop), valist, f_ftop, - NULL_TREE); - off = build (COMPONENT_REF, TREE_TYPE (f_foff), valist, f_foff, - NULL_TREE); + top = build3 (COMPONENT_REF, TREE_TYPE (f_ftop), valist, f_ftop, + NULL_TREE); + off = build3 (COMPONENT_REF, TREE_TYPE (f_foff), valist, f_foff, + NULL_TREE); /* When floating-point registers are saved to the stack, each one will take up UNITS_PER_HWFPVALUE bytes, regardless @@ -4251,42 +4251,42 @@ mips_gimplify_va_arg_expr (tree valist, tree type, tree *pre_p, tree *post_p) } else { - top = build (COMPONENT_REF, TREE_TYPE (f_gtop), valist, f_gtop, - NULL_TREE); - off = build (COMPONENT_REF, TREE_TYPE (f_goff), valist, f_goff, - NULL_TREE); + top = build3 (COMPONENT_REF, TREE_TYPE (f_gtop), valist, f_gtop, + NULL_TREE); + off = build3 (COMPONENT_REF, TREE_TYPE (f_goff), valist, f_goff, + NULL_TREE); if (rsize > UNITS_PER_WORD) { /* [1] Emit code for: off &= -rsize. */ - t = build (BIT_AND_EXPR, TREE_TYPE (off), off, - build_int_cst (NULL_TREE, -rsize)); - t = build (MODIFY_EXPR, TREE_TYPE (off), off, t); + t = build2 (BIT_AND_EXPR, TREE_TYPE (off), off, + build_int_cst (NULL_TREE, -rsize)); + t = build2 (MODIFY_EXPR, TREE_TYPE (off), off, t); gimplify_and_add (t, pre_p); } osize = rsize; } /* [2] Emit code to branch if off == 0. */ - t = build (NE_EXPR, boolean_type_node, off, - build_int_cst (TREE_TYPE (off), 0)); - addr = build (COND_EXPR, ptr_type_node, t, NULL, NULL); + t = build2 (NE_EXPR, boolean_type_node, off, + build_int_cst (TREE_TYPE (off), 0)); + addr = build3 (COND_EXPR, ptr_type_node, t, NULL_TREE, NULL_TREE); /* [5] Emit code for: off -= rsize. We do this as a form of post-increment not available to C. Also widen for the coming pointer arithmetic. */ t = fold_convert (TREE_TYPE (off), build_int_cst (NULL_TREE, rsize)); - t = build (POSTDECREMENT_EXPR, TREE_TYPE (off), off, t); + t = build2 (POSTDECREMENT_EXPR, TREE_TYPE (off), off, t); t = fold_convert (sizetype, t); t = fold_convert (TREE_TYPE (top), t); /* [4] Emit code for: addr_rtx = top - off. On big endian machines, the argument has RSIZE - SIZE bytes of leading padding. */ - t = build (MINUS_EXPR, TREE_TYPE (top), top, t); + t = build2 (MINUS_EXPR, TREE_TYPE (top), top, t); if (BYTES_BIG_ENDIAN && rsize > size) { u = fold_convert (TREE_TYPE (t), build_int_cst (NULL_TREE, rsize - size)); - t = build (PLUS_EXPR, TREE_TYPE (t), t, u); + t = build2 (PLUS_EXPR, TREE_TYPE (t), t, u); } COND_EXPR_THEN (addr) = t; @@ -4295,11 +4295,11 @@ mips_gimplify_va_arg_expr (tree valist, tree type, tree *pre_p, tree *post_p) /* [9] Emit: ovfl += ((intptr_t) ovfl + osize - 1) & -osize. */ u = fold_convert (TREE_TYPE (ovfl), build_int_cst (NULL_TREE, osize - 1)); - t = build (PLUS_EXPR, TREE_TYPE (ovfl), ovfl, u); + t = build2 (PLUS_EXPR, TREE_TYPE (ovfl), ovfl, u); u = fold_convert (TREE_TYPE (ovfl), build_int_cst (NULL_TREE, -osize)); - t = build (BIT_AND_EXPR, TREE_TYPE (ovfl), t, u); - align = build (MODIFY_EXPR, TREE_TYPE (ovfl), ovfl, t); + t = build2 (BIT_AND_EXPR, TREE_TYPE (ovfl), t, u); + align = build2 (MODIFY_EXPR, TREE_TYPE (ovfl), ovfl, t); } else align = NULL; @@ -4309,17 +4309,17 @@ mips_gimplify_va_arg_expr (tree valist, tree type, tree *pre_p, tree *post_p) the argument has OSIZE - SIZE bytes of leading padding. */ u = fold_convert (TREE_TYPE (ovfl), build_int_cst (NULL_TREE, osize)); - t = build (POSTINCREMENT_EXPR, TREE_TYPE (ovfl), ovfl, u); + t = build2 (POSTINCREMENT_EXPR, TREE_TYPE (ovfl), ovfl, u); if (BYTES_BIG_ENDIAN && osize > size) { u = fold_convert (TREE_TYPE (t), build_int_cst (NULL_TREE, osize - size)); - t = build (PLUS_EXPR, TREE_TYPE (t), t, u); + t = build2 (PLUS_EXPR, TREE_TYPE (t), t, u); } /* String [9] and [10,11] together. */ if (align) - t = build (COMPOUND_EXPR, TREE_TYPE (t), align, t); + t = build2 (COMPOUND_EXPR, TREE_TYPE (t), align, t); COND_EXPR_ELSE (addr) = t; addr = fold_convert (build_pointer_type (type), addr); diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index 381a820a885..fee8d1c73af 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -5853,20 +5853,20 @@ hppa_gimplify_va_arg_expr (tree valist, tree type, tree *pre_p, tree *post_p) /* Args grow down. Not handled by generic routines. */ u = fold_convert (valist_type, size_in_bytes (type)); - t = build (MINUS_EXPR, valist_type, valist, u); + t = build2 (MINUS_EXPR, valist_type, valist, u); /* Copied from va-pa.h, but we probably don't need to align to word size, since we generate and preserve that invariant. */ u = build_int_cst (valist_type, (size > 4 ? -8 : -4)); - t = build (BIT_AND_EXPR, valist_type, t, u); + t = build2 (BIT_AND_EXPR, valist_type, t, u); - t = build (MODIFY_EXPR, valist_type, valist, t); + t = build2 (MODIFY_EXPR, valist_type, valist, t); ofs = (8 - size) % 4; if (ofs != 0) { u = fold_convert (valist_type, size_int (ofs)); - t = build (PLUS_EXPR, valist_type, t, u); + t = build2 (PLUS_EXPR, valist_type, t, u); } t = fold_convert (ptr, t); diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 8d5cd99b01e..c3fa81aea2e 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -5658,10 +5658,10 @@ rs6000_va_start (tree valist, rtx nextarg) f_sav = TREE_CHAIN (f_ovf); valist = build_va_arg_indirect_ref (valist); - gpr = build (COMPONENT_REF, TREE_TYPE (f_gpr), valist, f_gpr, NULL_TREE); - fpr = build (COMPONENT_REF, TREE_TYPE (f_fpr), valist, f_fpr, NULL_TREE); - ovf = build (COMPONENT_REF, TREE_TYPE (f_ovf), valist, f_ovf, NULL_TREE); - sav = build (COMPONENT_REF, TREE_TYPE (f_sav), valist, f_sav, NULL_TREE); + gpr = build3 (COMPONENT_REF, TREE_TYPE (f_gpr), valist, f_gpr, NULL_TREE); + fpr = build3 (COMPONENT_REF, TREE_TYPE (f_fpr), valist, f_fpr, NULL_TREE); + ovf = build3 (COMPONENT_REF, TREE_TYPE (f_ovf), valist, f_ovf, NULL_TREE); + sav = build3 (COMPONENT_REF, TREE_TYPE (f_sav), valist, f_sav, NULL_TREE); /* Count number of gp and fp argument registers used. */ words = current_function_args_info.words; @@ -5677,16 +5677,16 @@ rs6000_va_start (tree valist, rtx nextarg) if (cfun->va_list_gpr_size) { - t = build (MODIFY_EXPR, TREE_TYPE (gpr), gpr, - build_int_cst (NULL_TREE, n_gpr)); + t = build2 (MODIFY_EXPR, TREE_TYPE (gpr), gpr, + build_int_cst (NULL_TREE, n_gpr)); TREE_SIDE_EFFECTS (t) = 1; expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); } if (cfun->va_list_fpr_size) { - t = build (MODIFY_EXPR, TREE_TYPE (fpr), fpr, - build_int_cst (NULL_TREE, n_fpr)); + t = build2 (MODIFY_EXPR, TREE_TYPE (fpr), fpr, + build_int_cst (NULL_TREE, n_fpr)); TREE_SIDE_EFFECTS (t) = 1; expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); } @@ -5694,9 +5694,9 @@ rs6000_va_start (tree valist, rtx nextarg) /* Find the overflow area. */ t = make_tree (TREE_TYPE (ovf), virtual_incoming_args_rtx); if (words != 0) - t = build (PLUS_EXPR, TREE_TYPE (ovf), t, - build_int_cst (NULL_TREE, words * UNITS_PER_WORD)); - t = build (MODIFY_EXPR, TREE_TYPE (ovf), ovf, t); + t = build2 (PLUS_EXPR, TREE_TYPE (ovf), t, + build_int_cst (NULL_TREE, words * UNITS_PER_WORD)); + t = build2 (MODIFY_EXPR, TREE_TYPE (ovf), ovf, t); TREE_SIDE_EFFECTS (t) = 1; expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); @@ -5711,9 +5711,9 @@ rs6000_va_start (tree valist, rtx nextarg) /* Find the register save area. */ t = make_tree (TREE_TYPE (sav), virtual_stack_vars_rtx); if (cfun->machine->varargs_save_offset) - t = build (PLUS_EXPR, TREE_TYPE (sav), t, - build_int_cst (NULL_TREE, cfun->machine->varargs_save_offset)); - t = build (MODIFY_EXPR, TREE_TYPE (sav), sav, t); + t = build2 (PLUS_EXPR, TREE_TYPE (sav), t, + build_int_cst (NULL_TREE, cfun->machine->varargs_save_offset)); + t = build2 (MODIFY_EXPR, TREE_TYPE (sav), sav, t); TREE_SIDE_EFFECTS (t) = 1; expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); } @@ -5759,7 +5759,7 @@ rs6000_gimplify_va_arg (tree valist, tree type, tree *pre_p, tree *post_p) imag_part = rs6000_gimplify_va_arg (valist, elem_type, pre_p, post_p); - return build (COMPLEX_EXPR, type, real_part, imag_part); + return build2 (COMPLEX_EXPR, type, real_part, imag_part); } } @@ -5773,10 +5773,10 @@ rs6000_gimplify_va_arg (tree valist, tree type, tree *pre_p, tree *post_p) f_sav = TREE_CHAIN (f_ovf); valist = build_va_arg_indirect_ref (valist); - gpr = build (COMPONENT_REF, TREE_TYPE (f_gpr), valist, f_gpr, NULL_TREE); - fpr = build (COMPONENT_REF, TREE_TYPE (f_fpr), valist, f_fpr, NULL_TREE); - ovf = build (COMPONENT_REF, TREE_TYPE (f_ovf), valist, f_ovf, NULL_TREE); - sav = build (COMPONENT_REF, TREE_TYPE (f_sav), valist, f_sav, NULL_TREE); + gpr = build3 (COMPONENT_REF, TREE_TYPE (f_gpr), valist, f_gpr, NULL_TREE); + fpr = build3 (COMPONENT_REF, TREE_TYPE (f_fpr), valist, f_fpr, NULL_TREE); + ovf = build3 (COMPONENT_REF, TREE_TYPE (f_ovf), valist, f_ovf, NULL_TREE); + sav = build3 (COMPONENT_REF, TREE_TYPE (f_sav), valist, f_sav, NULL_TREE); size = int_size_in_bytes (type); rsize = (size + 3) / 4; @@ -5857,7 +5857,7 @@ rs6000_gimplify_va_arg (tree valist, tree type, tree *pre_p, tree *post_p) { /* Ensure that we don't find any more args in regs. Alignment has taken care of the n_reg == 2 case. */ - t = build (MODIFY_EXPR, TREE_TYPE (reg), reg, size_int (8)); + t = build2 (MODIFY_EXPR, TREE_TYPE (reg), reg, size_int (8)); gimplify_and_add (t, pre_p); } } diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c index de049bf1c0e..d9dc288e062 100644 --- a/gcc/config/s390/s390.c +++ b/gcc/config/s390/s390.c @@ -7493,10 +7493,10 @@ s390_va_start (tree valist, rtx nextarg ATTRIBUTE_UNUSED) f_sav = TREE_CHAIN (f_ovf); valist = build_va_arg_indirect_ref (valist); - gpr = build (COMPONENT_REF, TREE_TYPE (f_gpr), valist, f_gpr, NULL_TREE); - fpr = build (COMPONENT_REF, TREE_TYPE (f_fpr), valist, f_fpr, NULL_TREE); - ovf = build (COMPONENT_REF, TREE_TYPE (f_ovf), valist, f_ovf, NULL_TREE); - sav = build (COMPONENT_REF, TREE_TYPE (f_sav), valist, f_sav, NULL_TREE); + gpr = build3 (COMPONENT_REF, TREE_TYPE (f_gpr), valist, f_gpr, NULL_TREE); + fpr = build3 (COMPONENT_REF, TREE_TYPE (f_fpr), valist, f_fpr, NULL_TREE); + ovf = build3 (COMPONENT_REF, TREE_TYPE (f_ovf), valist, f_ovf, NULL_TREE); + sav = build3 (COMPONENT_REF, TREE_TYPE (f_sav), valist, f_sav, NULL_TREE); /* Count number of gp and fp argument registers used. */ @@ -7505,16 +7505,16 @@ s390_va_start (tree valist, rtx nextarg ATTRIBUTE_UNUSED) if (cfun->va_list_gpr_size) { - t = build (MODIFY_EXPR, TREE_TYPE (gpr), gpr, - build_int_cst (NULL_TREE, n_gpr)); + t = build2 (MODIFY_EXPR, TREE_TYPE (gpr), gpr, + build_int_cst (NULL_TREE, n_gpr)); TREE_SIDE_EFFECTS (t) = 1; expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); } if (cfun->va_list_fpr_size) { - t = build (MODIFY_EXPR, TREE_TYPE (fpr), fpr, - build_int_cst (NULL_TREE, n_fpr)); + t = build2 (MODIFY_EXPR, TREE_TYPE (fpr), fpr, + build_int_cst (NULL_TREE, n_fpr)); TREE_SIDE_EFFECTS (t) = 1; expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); } @@ -7531,9 +7531,9 @@ s390_va_start (tree valist, rtx nextarg ATTRIBUTE_UNUSED) fprintf (stderr, "va_start: n_gpr = %d, n_fpr = %d off %d\n", (int)n_gpr, (int)n_fpr, off); - t = build (PLUS_EXPR, TREE_TYPE (ovf), t, build_int_cst (NULL_TREE, off)); + t = build2 (PLUS_EXPR, TREE_TYPE (ovf), t, build_int_cst (NULL_TREE, off)); - t = build (MODIFY_EXPR, TREE_TYPE (ovf), ovf, t); + t = build2 (MODIFY_EXPR, TREE_TYPE (ovf), ovf, t); TREE_SIDE_EFFECTS (t) = 1; expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); } @@ -7543,10 +7543,10 @@ s390_va_start (tree valist, rtx nextarg ATTRIBUTE_UNUSED) || (cfun->va_list_fpr_size && n_fpr < FP_ARG_NUM_REG)) { t = make_tree (TREE_TYPE (sav), return_address_pointer_rtx); - t = build (PLUS_EXPR, TREE_TYPE (sav), t, - build_int_cst (NULL_TREE, -RETURN_REGNUM * UNITS_PER_WORD)); + t = build2 (PLUS_EXPR, TREE_TYPE (sav), t, + build_int_cst (NULL_TREE, -RETURN_REGNUM * UNITS_PER_WORD)); - t = build (MODIFY_EXPR, TREE_TYPE (sav), sav, t); + t = build2 (MODIFY_EXPR, TREE_TYPE (sav), sav, t); TREE_SIDE_EFFECTS (t) = 1; expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); } @@ -7591,10 +7591,10 @@ s390_gimplify_va_arg (tree valist, tree type, tree *pre_p, f_sav = TREE_CHAIN (f_ovf); valist = build_va_arg_indirect_ref (valist); - gpr = build (COMPONENT_REF, TREE_TYPE (f_gpr), valist, f_gpr, NULL_TREE); - fpr = build (COMPONENT_REF, TREE_TYPE (f_fpr), valist, f_fpr, NULL_TREE); - ovf = build (COMPONENT_REF, TREE_TYPE (f_ovf), valist, f_ovf, NULL_TREE); - sav = build (COMPONENT_REF, TREE_TYPE (f_sav), valist, f_sav, NULL_TREE); + gpr = build3 (COMPONENT_REF, TREE_TYPE (f_gpr), valist, f_gpr, NULL_TREE); + fpr = build3 (COMPONENT_REF, TREE_TYPE (f_fpr), valist, f_fpr, NULL_TREE); + ovf = build3 (COMPONENT_REF, TREE_TYPE (f_ovf), valist, f_ovf, NULL_TREE); + sav = build3 (COMPONENT_REF, TREE_TYPE (f_sav), valist, f_sav, NULL_TREE); size = int_size_in_bytes (type); diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c index 1bcf81d8bdc..1cbdd99796b 100644 --- a/gcc/config/sh/sh.c +++ b/gcc/config/sh/sh.c @@ -6658,20 +6658,20 @@ sh_va_start (tree valist, rtx nextarg) f_next_fp_limit = TREE_CHAIN (f_next_fp); f_next_stack = TREE_CHAIN (f_next_fp_limit); - next_o = build (COMPONENT_REF, TREE_TYPE (f_next_o), valist, f_next_o, - NULL_TREE); - next_o_limit = build (COMPONENT_REF, TREE_TYPE (f_next_o_limit), - valist, f_next_o_limit, NULL_TREE); - next_fp = build (COMPONENT_REF, TREE_TYPE (f_next_fp), valist, f_next_fp, + next_o = build3 (COMPONENT_REF, TREE_TYPE (f_next_o), valist, f_next_o, NULL_TREE); - next_fp_limit = build (COMPONENT_REF, TREE_TYPE (f_next_fp_limit), - valist, f_next_fp_limit, NULL_TREE); - next_stack = build (COMPONENT_REF, TREE_TYPE (f_next_stack), - valist, f_next_stack, NULL_TREE); + next_o_limit = build3 (COMPONENT_REF, TREE_TYPE (f_next_o_limit), + valist, f_next_o_limit, NULL_TREE); + next_fp = build3 (COMPONENT_REF, TREE_TYPE (f_next_fp), valist, f_next_fp, + NULL_TREE); + next_fp_limit = build3 (COMPONENT_REF, TREE_TYPE (f_next_fp_limit), + valist, f_next_fp_limit, NULL_TREE); + next_stack = build3 (COMPONENT_REF, TREE_TYPE (f_next_stack), + valist, f_next_stack, NULL_TREE); /* Call __builtin_saveregs. */ u = make_tree (ptr_type_node, expand_builtin_saveregs ()); - t = build (MODIFY_EXPR, ptr_type_node, next_fp, u); + t = build2 (MODIFY_EXPR, ptr_type_node, next_fp, u); TREE_SIDE_EFFECTS (t) = 1; expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); @@ -6680,13 +6680,13 @@ sh_va_start (tree valist, rtx nextarg) nfp = 8 - nfp; else nfp = 0; - u = fold (build (PLUS_EXPR, ptr_type_node, u, - build_int_cst (NULL_TREE, UNITS_PER_WORD * nfp))); - t = build (MODIFY_EXPR, ptr_type_node, next_fp_limit, u); + u = fold_build2 (PLUS_EXPR, ptr_type_node, u, + build_int_cst (NULL_TREE, UNITS_PER_WORD * nfp)); + t = build2 (MODIFY_EXPR, ptr_type_node, next_fp_limit, u); TREE_SIDE_EFFECTS (t) = 1; expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); - t = build (MODIFY_EXPR, ptr_type_node, next_o, u); + t = build2 (MODIFY_EXPR, ptr_type_node, next_o, u); TREE_SIDE_EFFECTS (t) = 1; expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); @@ -6695,14 +6695,14 @@ sh_va_start (tree valist, rtx nextarg) nint = 4 - nint; else nint = 0; - u = fold (build (PLUS_EXPR, ptr_type_node, u, - build_int_cst (NULL_TREE, UNITS_PER_WORD * nint))); - t = build (MODIFY_EXPR, ptr_type_node, next_o_limit, u); + u = fold_build2 (PLUS_EXPR, ptr_type_node, u, + build_int_cst (NULL_TREE, UNITS_PER_WORD * nint)); + t = build2 (MODIFY_EXPR, ptr_type_node, next_o_limit, u); TREE_SIDE_EFFECTS (t) = 1; expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); u = make_tree (ptr_type_node, nextarg); - t = build (MODIFY_EXPR, ptr_type_node, next_stack, u); + t = build2 (MODIFY_EXPR, ptr_type_node, next_stack, u); TREE_SIDE_EFFECTS (t) = 1; expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); } @@ -6761,16 +6761,16 @@ sh_gimplify_va_arg_expr (tree valist, tree type, tree *pre_p, f_next_fp_limit = TREE_CHAIN (f_next_fp); f_next_stack = TREE_CHAIN (f_next_fp_limit); - next_o = build (COMPONENT_REF, TREE_TYPE (f_next_o), valist, f_next_o, - NULL_TREE); - next_o_limit = build (COMPONENT_REF, TREE_TYPE (f_next_o_limit), - valist, f_next_o_limit, NULL_TREE); - next_fp = build (COMPONENT_REF, TREE_TYPE (f_next_fp), - valist, f_next_fp, NULL_TREE); - next_fp_limit = build (COMPONENT_REF, TREE_TYPE (f_next_fp_limit), - valist, f_next_fp_limit, NULL_TREE); - next_stack = build (COMPONENT_REF, TREE_TYPE (f_next_stack), - valist, f_next_stack, NULL_TREE); + next_o = build3 (COMPONENT_REF, TREE_TYPE (f_next_o), valist, f_next_o, + NULL_TREE); + next_o_limit = build3 (COMPONENT_REF, TREE_TYPE (f_next_o_limit), + valist, f_next_o_limit, NULL_TREE); + next_fp = build3 (COMPONENT_REF, TREE_TYPE (f_next_fp), + valist, f_next_fp, NULL_TREE); + next_fp_limit = build3 (COMPONENT_REF, TREE_TYPE (f_next_fp_limit), + valist, f_next_fp_limit, NULL_TREE); + next_stack = build3 (COMPONENT_REF, TREE_TYPE (f_next_stack), + valist, f_next_stack, NULL_TREE); /* Structures with a single member with a distinct mode are passed like their member. This is relevant if the latter has a REAL_TYPE @@ -6829,19 +6829,19 @@ sh_gimplify_va_arg_expr (tree valist, tree type, tree *pre_p, if (size > 4 && !is_double) tmp = build2 (PLUS_EXPR, TREE_TYPE (tmp), tmp, fold_convert (TREE_TYPE (tmp), size_int (4 - size))); - tmp = build (GE_EXPR, boolean_type_node, next_fp_tmp, tmp); - cmp = build (COND_EXPR, void_type_node, tmp, - build (GOTO_EXPR, void_type_node, lab_false), - NULL); + tmp = build2 (GE_EXPR, boolean_type_node, next_fp_tmp, tmp); + cmp = build3 (COND_EXPR, void_type_node, tmp, + build1 (GOTO_EXPR, void_type_node, lab_false), + NULL_TREE); if (!is_double) gimplify_and_add (cmp, pre_p); if (TYPE_ALIGN (type) > BITS_PER_WORD || (is_double || size == 16)) { tmp = fold_convert (ptr_type_node, size_int (UNITS_PER_WORD)); - tmp = build (BIT_AND_EXPR, ptr_type_node, next_fp_tmp, tmp); - tmp = build (PLUS_EXPR, ptr_type_node, next_fp_tmp, tmp); - tmp = build (MODIFY_EXPR, ptr_type_node, next_fp_tmp, tmp); + tmp = build2 (BIT_AND_EXPR, ptr_type_node, next_fp_tmp, tmp); + tmp = build2 (PLUS_EXPR, ptr_type_node, next_fp_tmp, tmp); + tmp = build2 (MODIFY_EXPR, ptr_type_node, next_fp_tmp, tmp); gimplify_and_add (tmp, pre_p); } if (is_double) @@ -6861,19 +6861,19 @@ sh_gimplify_va_arg_expr (tree valist, tree type, tree *pre_p, = std_gimplify_va_arg_expr (next_fp_tmp, subtype, pre_p, NULL); real = get_initialized_tmp_var (real, pre_p, NULL); - result = build (COMPLEX_EXPR, type, real, imag); + result = build2 (COMPLEX_EXPR, type, real, imag); result = get_initialized_tmp_var (result, pre_p, NULL); } #endif /* FUNCTION_ARG_SCmode_WART */ - tmp = build (GOTO_EXPR, void_type_node, lab_over); + tmp = build1 (GOTO_EXPR, void_type_node, lab_over); gimplify_and_add (tmp, pre_p); - tmp = build (LABEL_EXPR, void_type_node, lab_false); + tmp = build1 (LABEL_EXPR, void_type_node, lab_false); gimplify_and_add (tmp, pre_p); tmp = build1 (ADDR_EXPR, pptr_type_node, next_stack); - tmp = build (MODIFY_EXPR, void_type_node, addr, tmp); + tmp = build2 (MODIFY_EXPR, void_type_node, addr, tmp); gimplify_and_add (tmp, pre_p); tmp = build2 (MODIFY_EXPR, ptr_type_node, next_fp_tmp, valist); gimplify_and_add (tmp, pre_p); @@ -6885,37 +6885,37 @@ sh_gimplify_va_arg_expr (tree valist, tree type, tree *pre_p, else { tmp = fold_convert (ptr_type_node, size_int (rsize)); - tmp = build (PLUS_EXPR, ptr_type_node, next_o, tmp); - tmp = build (GT_EXPR, boolean_type_node, tmp, next_o_limit); - tmp = build (COND_EXPR, void_type_node, tmp, - build (GOTO_EXPR, void_type_node, lab_false), - NULL); + tmp = build2 (PLUS_EXPR, ptr_type_node, next_o, tmp); + tmp = build2 (GT_EXPR, boolean_type_node, tmp, next_o_limit); + tmp = build3 (COND_EXPR, void_type_node, tmp, + build1 (GOTO_EXPR, void_type_node, lab_false), + NULL_TREE); gimplify_and_add (tmp, pre_p); tmp = build1 (ADDR_EXPR, pptr_type_node, next_o); - tmp = build (MODIFY_EXPR, void_type_node, addr, tmp); + tmp = build2 (MODIFY_EXPR, void_type_node, addr, tmp); gimplify_and_add (tmp, pre_p); - tmp = build (GOTO_EXPR, void_type_node, lab_over); + tmp = build1 (GOTO_EXPR, void_type_node, lab_over); gimplify_and_add (tmp, pre_p); - tmp = build (LABEL_EXPR, void_type_node, lab_false); + tmp = build1 (LABEL_EXPR, void_type_node, lab_false); gimplify_and_add (tmp, pre_p); if (size > 4 && ! TARGET_SH4) { - tmp = build (MODIFY_EXPR, ptr_type_node, next_o, next_o_limit); + tmp = build2 (MODIFY_EXPR, ptr_type_node, next_o, next_o_limit); gimplify_and_add (tmp, pre_p); } tmp = build1 (ADDR_EXPR, pptr_type_node, next_stack); - tmp = build (MODIFY_EXPR, void_type_node, addr, tmp); + tmp = build2 (MODIFY_EXPR, void_type_node, addr, tmp); gimplify_and_add (tmp, pre_p); } if (!result) { - tmp = build (LABEL_EXPR, void_type_node, lab_over); + tmp = build1 (LABEL_EXPR, void_type_node, lab_over); gimplify_and_add (tmp, pre_p); } } @@ -6926,10 +6926,10 @@ sh_gimplify_va_arg_expr (tree valist, tree type, tree *pre_p, tmp = std_gimplify_va_arg_expr (valist, type, pre_p, NULL); if (result) { - tmp = build (MODIFY_EXPR, void_type_node, result, tmp); + tmp = build2 (MODIFY_EXPR, void_type_node, result, tmp); gimplify_and_add (tmp, pre_p); - tmp = build (LABEL_EXPR, void_type_node, lab_over); + tmp = build1 (LABEL_EXPR, void_type_node, lab_over); gimplify_and_add (tmp, pre_p); } else @@ -10279,10 +10279,10 @@ sh_adjust_unroll_max (struct loop * loop, int insn_count, if (TREE_CODE (type) != ARRAY_TYPE || ! TYPE_SIZE (type) || ! TYPE_SIZE_UNIT (type)) break; - size_tree = fold (build (TRUNC_DIV_EXPR, + size_tree = fold_build2 (TRUNC_DIV_EXPR, bitsizetype, TYPE_SIZE (type), - TYPE_SIZE_UNIT (type))); + TYPE_SIZE_UNIT (type)); if (TREE_CODE (size_tree) == INTEGER_CST && ! TREE_INT_CST_HIGH (size_tree) && TREE_INT_CST_LOW (size_tree) < max_iterations) diff --git a/gcc/config/stormy16/stormy16.c b/gcc/config/stormy16/stormy16.c index d1f33c7b719..3e779248d1a 100644 --- a/gcc/config/stormy16/stormy16.c +++ b/gcc/config/stormy16/stormy16.c @@ -1365,20 +1365,20 @@ xstormy16_expand_builtin_va_start (tree valist, rtx nextarg ATTRIBUTE_UNUSED) f_base = TYPE_FIELDS (va_list_type_node); f_count = TREE_CHAIN (f_base); - base = build (COMPONENT_REF, TREE_TYPE (f_base), valist, f_base, NULL_TREE); - count = build (COMPONENT_REF, TREE_TYPE (f_count), valist, f_count, - NULL_TREE); + base = build3 (COMPONENT_REF, TREE_TYPE (f_base), valist, f_base, NULL_TREE); + count = build3 (COMPONENT_REF, TREE_TYPE (f_count), valist, f_count, + NULL_TREE); t = make_tree (TREE_TYPE (base), virtual_incoming_args_rtx); - t = build (PLUS_EXPR, TREE_TYPE (base), t, - build_int_cst (NULL_TREE, INCOMING_FRAME_SP_OFFSET)); - t = build (MODIFY_EXPR, TREE_TYPE (base), base, t); + t = build2 (PLUS_EXPR, TREE_TYPE (base), t, + build_int_cst (NULL_TREE, INCOMING_FRAME_SP_OFFSET)); + t = build2 (MODIFY_EXPR, TREE_TYPE (base), base, t); TREE_SIDE_EFFECTS (t) = 1; expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); - t = build (MODIFY_EXPR, TREE_TYPE (count), count, - build_int_cst (NULL_TREE, - current_function_args_info * UNITS_PER_WORD)); + t = build2 (MODIFY_EXPR, TREE_TYPE (count), count, + build_int_cst (NULL_TREE, + current_function_args_info * UNITS_PER_WORD)); TREE_SIDE_EFFECTS (t) = 1; expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); } @@ -1401,9 +1401,9 @@ xstormy16_expand_builtin_va_arg (tree valist, tree type, tree *pre_p, f_base = TYPE_FIELDS (va_list_type_node); f_count = TREE_CHAIN (f_base); - base = build (COMPONENT_REF, TREE_TYPE (f_base), valist, f_base, NULL_TREE); - count = build (COMPONENT_REF, TREE_TYPE (f_count), valist, f_count, - NULL_TREE); + base = build3 (COMPONENT_REF, TREE_TYPE (f_base), valist, f_base, NULL_TREE); + count = build3 (COMPONENT_REF, TREE_TYPE (f_count), valist, f_count, + NULL_TREE); must_stack = targetm.calls.must_pass_in_stack (TYPE_MODE (type), type); size_tree = round_up (size_in_bytes (type), UNITS_PER_WORD); @@ -1421,23 +1421,23 @@ xstormy16_expand_builtin_va_arg (tree valist, tree type, tree *pre_p, tree r; t = fold_convert (TREE_TYPE (count), size_tree); - t = build (PLUS_EXPR, TREE_TYPE (count), count_tmp, t); + t = build2 (PLUS_EXPR, TREE_TYPE (count), count_tmp, t); r = fold_convert (TREE_TYPE (count), size_int (size_of_reg_args)); - t = build (GT_EXPR, boolean_type_node, t, r); - t = build (COND_EXPR, void_type_node, t, - build (GOTO_EXPR, void_type_node, lab_fromstack), - NULL); + t = build2 (GT_EXPR, boolean_type_node, t, r); + t = build3 (COND_EXPR, void_type_node, t, + build1 (GOTO_EXPR, void_type_node, lab_fromstack), + NULL_TREE); gimplify_and_add (t, pre_p); t = fold_convert (ptr_type_node, count_tmp); - t = build (PLUS_EXPR, ptr_type_node, base, t); - t = build (MODIFY_EXPR, void_type_node, addr, t); + t = build2 (PLUS_EXPR, ptr_type_node, base, t); + t = build2 (MODIFY_EXPR, void_type_node, addr, t); gimplify_and_add (t, pre_p); - t = build (GOTO_EXPR, void_type_node, lab_gotaddr); + t = build1 (GOTO_EXPR, void_type_node, lab_gotaddr); gimplify_and_add (t, pre_p); - t = build (LABEL_EXPR, void_type_node, lab_fromstack); + t = build1 (LABEL_EXPR, void_type_node, lab_fromstack); gimplify_and_add (t, pre_p); } @@ -1450,31 +1450,31 @@ xstormy16_expand_builtin_va_arg (tree valist, tree type, tree *pre_p, tree r, u; r = size_int (NUM_ARGUMENT_REGISTERS * UNITS_PER_WORD); - u = build (MODIFY_EXPR, void_type_node, count_tmp, r); + u = build2 (MODIFY_EXPR, void_type_node, count_tmp, r); t = fold_convert (TREE_TYPE (count), r); - t = build (GE_EXPR, boolean_type_node, count_tmp, t); - t = build (COND_EXPR, void_type_node, t, NULL, u); + t = build2 (GE_EXPR, boolean_type_node, count_tmp, t); + t = build3 (COND_EXPR, void_type_node, t, NULL_TREE, u); gimplify_and_add (t, pre_p); } t = size_int (NUM_ARGUMENT_REGISTERS * UNITS_PER_WORD - INCOMING_FRAME_SP_OFFSET); t = fold_convert (TREE_TYPE (count), t); - t = build (MINUS_EXPR, TREE_TYPE (count), count_tmp, t); - t = build (PLUS_EXPR, TREE_TYPE (count), t, - fold_convert (TREE_TYPE (count), size_tree)); + t = build2 (MINUS_EXPR, TREE_TYPE (count), count_tmp, t); + t = build2 (PLUS_EXPR, TREE_TYPE (count), t, + fold_convert (TREE_TYPE (count), size_tree)); t = fold_convert (TREE_TYPE (base), fold (t)); - t = build (MINUS_EXPR, TREE_TYPE (base), base, t); - t = build (MODIFY_EXPR, void_type_node, addr, t); + t = build2 (MINUS_EXPR, TREE_TYPE (base), base, t); + t = build2 (MODIFY_EXPR, void_type_node, addr, t); gimplify_and_add (t, pre_p); - t = build (LABEL_EXPR, void_type_node, lab_gotaddr); + t = build1 (LABEL_EXPR, void_type_node, lab_gotaddr); gimplify_and_add (t, pre_p); t = fold_convert (TREE_TYPE (count), size_tree); - t = build (PLUS_EXPR, TREE_TYPE (count), count_tmp, t); - t = build (MODIFY_EXPR, TREE_TYPE (count), count, t); + t = build2 (PLUS_EXPR, TREE_TYPE (count), count_tmp, t); + t = build2 (MODIFY_EXPR, TREE_TYPE (count), count, t); gimplify_and_add (t, pre_p); addr = fold_convert (build_pointer_type (type), addr); diff --git a/gcc/config/xtensa/xtensa.c b/gcc/config/xtensa/xtensa.c index 32cb94d0320..9dfa3027d9d 100644 --- a/gcc/config/xtensa/xtensa.c +++ b/gcc/config/xtensa/xtensa.c @@ -2098,21 +2098,21 @@ xtensa_va_start (tree valist, rtx nextarg ATTRIBUTE_UNUSED) f_reg = TREE_CHAIN (f_stk); f_ndx = TREE_CHAIN (f_reg); - stk = build (COMPONENT_REF, TREE_TYPE (f_stk), valist, f_stk, NULL_TREE); - reg = build (COMPONENT_REF, TREE_TYPE (f_reg), valist, f_reg, NULL_TREE); - ndx = build (COMPONENT_REF, TREE_TYPE (f_ndx), valist, f_ndx, NULL_TREE); + stk = build3 (COMPONENT_REF, TREE_TYPE (f_stk), valist, f_stk, NULL_TREE); + reg = build3 (COMPONENT_REF, TREE_TYPE (f_reg), valist, f_reg, NULL_TREE); + ndx = build3 (COMPONENT_REF, TREE_TYPE (f_ndx), valist, f_ndx, NULL_TREE); /* Call __builtin_saveregs; save the result in __va_reg */ u = make_tree (ptr_type_node, expand_builtin_saveregs ()); - t = build (MODIFY_EXPR, ptr_type_node, reg, u); + t = build2 (MODIFY_EXPR, ptr_type_node, reg, u); TREE_SIDE_EFFECTS (t) = 1; expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); /* Set the __va_stk member to ($arg_ptr - 32). */ u = make_tree (ptr_type_node, virtual_incoming_args_rtx); - u = fold (build (PLUS_EXPR, ptr_type_node, u, - build_int_cst (NULL_TREE, -32))); - t = build (MODIFY_EXPR, ptr_type_node, stk, u); + u = fold_build2 (PLUS_EXPR, ptr_type_node, u, + build_int_cst (NULL_TREE, -32)); + t = build2 (MODIFY_EXPR, ptr_type_node, stk, u); TREE_SIDE_EFFECTS (t) = 1; expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); @@ -2122,7 +2122,7 @@ xtensa_va_start (tree valist, rtx nextarg ATTRIBUTE_UNUSED) if (arg_words >= MAX_ARGS_IN_REGISTERS) arg_words += 2; u = build_int_cst (NULL_TREE, arg_words * UNITS_PER_WORD); - t = build (MODIFY_EXPR, integer_type_node, ndx, u); + t = build2 (MODIFY_EXPR, integer_type_node, ndx, u); TREE_SIDE_EFFECTS (t) = 1; expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL); } @@ -2158,16 +2158,16 @@ xtensa_gimplify_va_arg_expr (tree valist, tree type, tree *pre_p, pre_p, NULL); imag_part = get_initialized_tmp_var (imag_part, pre_p, NULL); - return build (COMPLEX_EXPR, type, real_part, imag_part); + return build2 (COMPLEX_EXPR, type, real_part, imag_part); } f_stk = TYPE_FIELDS (va_list_type_node); f_reg = TREE_CHAIN (f_stk); f_ndx = TREE_CHAIN (f_reg); - stk = build (COMPONENT_REF, TREE_TYPE (f_stk), valist, f_stk, NULL_TREE); - reg = build (COMPONENT_REF, TREE_TYPE (f_reg), valist, f_reg, NULL_TREE); - ndx = build (COMPONENT_REF, TREE_TYPE (f_ndx), valist, f_ndx, NULL_TREE); + stk = build3 (COMPONENT_REF, TREE_TYPE (f_stk), valist, f_stk, NULL_TREE); + reg = build3 (COMPONENT_REF, TREE_TYPE (f_reg), valist, f_reg, NULL_TREE); + ndx = build3 (COMPONENT_REF, TREE_TYPE (f_ndx), valist, f_ndx, NULL_TREE); type_size = size_in_bytes (type); va_size = round_up (type_size, UNITS_PER_WORD); @@ -2187,11 +2187,11 @@ xtensa_gimplify_va_arg_expr (tree valist, tree type, tree *pre_p, { int align = TYPE_ALIGN (type) / BITS_PER_UNIT; - t = build (PLUS_EXPR, integer_type_node, orig_ndx, - build_int_cst (NULL_TREE, align - 1)); - t = build (BIT_AND_EXPR, integer_type_node, t, - build_int_cst (NULL_TREE, -align)); - t = build (MODIFY_EXPR, integer_type_node, orig_ndx, t); + t = build2 (PLUS_EXPR, integer_type_node, orig_ndx, + build_int_cst (NULL_TREE, align - 1)); + t = build2 (BIT_AND_EXPR, integer_type_node, t, + build_int_cst (NULL_TREE, -align)); + t = build2 (MODIFY_EXPR, integer_type_node, orig_ndx, t); gimplify_and_add (t, pre_p); } @@ -2201,8 +2201,8 @@ xtensa_gimplify_va_arg_expr (tree valist, tree type, tree *pre_p, (AP).__va_ndx = orig_ndx + __va_size (TYPE); */ t = fold_convert (integer_type_node, va_size); - t = build (PLUS_EXPR, integer_type_node, orig_ndx, t); - t = build (MODIFY_EXPR, integer_type_node, ndx, t); + t = build2 (PLUS_EXPR, integer_type_node, orig_ndx, t); + t = build2 (MODIFY_EXPR, integer_type_node, ndx, t); gimplify_and_add (t, pre_p); @@ -2221,19 +2221,19 @@ xtensa_gimplify_va_arg_expr (tree valist, tree type, tree *pre_p, lab_over = create_artificial_label (); t = build_int_cst (NULL_TREE, MAX_ARGS_IN_REGISTERS * UNITS_PER_WORD); - t = build (GT_EXPR, boolean_type_node, ndx, t); - t = build (COND_EXPR, void_type_node, t, - build (GOTO_EXPR, void_type_node, lab_false), - NULL); + t = build2 (GT_EXPR, boolean_type_node, ndx, t); + t = build3 (COND_EXPR, void_type_node, t, + build1 (GOTO_EXPR, void_type_node, lab_false), + NULL_TREE); gimplify_and_add (t, pre_p); - t = build (MODIFY_EXPR, void_type_node, array, reg); + t = build2 (MODIFY_EXPR, void_type_node, array, reg); gimplify_and_add (t, pre_p); - t = build (GOTO_EXPR, void_type_node, lab_over); + t = build1 (GOTO_EXPR, void_type_node, lab_over); gimplify_and_add (t, pre_p); - t = build (LABEL_EXPR, void_type_node, lab_false); + t = build1 (LABEL_EXPR, void_type_node, lab_false); gimplify_and_add (t, pre_p); } @@ -2251,26 +2251,26 @@ xtensa_gimplify_va_arg_expr (tree valist, tree type, tree *pre_p, lab_false2 = create_artificial_label (); t = build_int_cst (NULL_TREE, MAX_ARGS_IN_REGISTERS * UNITS_PER_WORD); - t = build (GT_EXPR, boolean_type_node, orig_ndx, t); - t = build (COND_EXPR, void_type_node, t, - build (GOTO_EXPR, void_type_node, lab_false2), - NULL); + t = build2 (GT_EXPR, boolean_type_node, orig_ndx, t); + t = build3 (COND_EXPR, void_type_node, t, + build1 (GOTO_EXPR, void_type_node, lab_false2), + NULL_TREE); gimplify_and_add (t, pre_p); t = size_binop (PLUS_EXPR, va_size, size_int (32)); t = fold_convert (integer_type_node, t); - t = build (MODIFY_EXPR, integer_type_node, ndx, t); + t = build2 (MODIFY_EXPR, integer_type_node, ndx, t); gimplify_and_add (t, pre_p); - t = build (LABEL_EXPR, void_type_node, lab_false2); + t = build1 (LABEL_EXPR, void_type_node, lab_false2); gimplify_and_add (t, pre_p); - t = build (MODIFY_EXPR, void_type_node, array, stk); + t = build2 (MODIFY_EXPR, void_type_node, array, stk); gimplify_and_add (t, pre_p); if (lab_over) { - t = build (LABEL_EXPR, void_type_node, lab_over); + t = build1 (LABEL_EXPR, void_type_node, lab_over); gimplify_and_add (t, pre_p); } @@ -2289,17 +2289,17 @@ xtensa_gimplify_va_arg_expr (tree valist, tree type, tree *pre_p, if (BYTES_BIG_ENDIAN && TREE_CODE (type_size) == INTEGER_CST) { t = size_int (PARM_BOUNDARY / BITS_PER_UNIT); - t = fold (build (GE_EXPR, boolean_type_node, type_size, t)); - t = fold (build (COND_EXPR, sizetype, t, va_size, type_size)); + t = fold_build2 (GE_EXPR, boolean_type_node, type_size, t); + t = fold_build3 (COND_EXPR, sizetype, t, va_size, type_size); size = t; } else size = va_size; t = fold_convert (ptr_type_node, ndx); - addr = build (PLUS_EXPR, ptr_type_node, array, t); + addr = build2 (PLUS_EXPR, ptr_type_node, array, t); t = fold_convert (ptr_type_node, size); - addr = build (MINUS_EXPR, ptr_type_node, addr, t); + addr = build2 (MINUS_EXPR, ptr_type_node, addr, t); addr = fold_convert (build_pointer_type (type), addr); if (indirect) |