From 5fa671cf5bd476ab9af10e8a46d6c9794b8b502f Mon Sep 17 00:00:00 2001 From: Andrew Macleod Date: Thu, 25 Mar 1999 12:04:26 +0000 Subject: rtl.texi (RTX_FRAME_RELATED_P): Add documentation. Thu Mar 25 14:04:54 EST 1999 Andrew MacLeod * rtl.texi (RTX_FRAME_RELATED_P): Add documentation. * rtl.h (struct rtx_def): Update comment for frame_related field. (set_unique_reg_note): Declare prototype. * dwarf2out.c (dwarf2out_frame_debug_expr): Split out from 'dwarf2out_frame_debug' to handle only expressions, and process component parts of a PARALLEL expression. (dwarf2out_frame_debug): Process insns only, and call new function 'dwarf2out_frame_debug_expr' for patterns. * emit-rtl.c (set_unique_reg_note): New function to add a reg note, but if there is an existingone, deletes it first. * expmed.c (expand_mult, expand_divmod): Use set_unique_reg_note. * optabs.c (add_equal_note, expand_binop): Use set_unique_reg_note. (emit_no_conflict_block, emit_libcall_block): Use set_unique_reg_note. (expand_fix): Use set_unique_reg_note. From-SVN: r25980 --- gcc/optabs.c | 43 ++++++++++++++++++------------------------- 1 file changed, 18 insertions(+), 25 deletions(-) (limited to 'gcc/optabs.c') diff --git a/gcc/optabs.c b/gcc/optabs.c index f65c2bb..b5a8423 100644 --- a/gcc/optabs.c +++ b/gcc/optabs.c @@ -305,9 +305,7 @@ add_equal_note (seq, target, code, op0, op1) else note = gen_rtx_fmt_ee (code, GET_MODE (target), copy_rtx (op0), copy_rtx (op1)); - REG_NOTES (XVECEXP (seq, 0, XVECLEN (seq, 0) - 1)) - = gen_rtx_EXPR_LIST (REG_EQUAL, note, - REG_NOTES (XVECEXP (seq, 0, XVECLEN (seq, 0) - 1))); + set_unique_reg_note (XVECEXP (seq, 0, XVECLEN (seq, 0) - 1), REG_EQUAL, note); return 1; } @@ -990,12 +988,11 @@ expand_binop (mode, binoptab, op0, op1, target, unsignedp, methods) { rtx temp = emit_move_insn (target, target); - REG_NOTES (temp) - = gen_rtx_EXPR_LIST (REG_EQUAL, - gen_rtx_fmt_ee (binoptab->code, mode, - copy_rtx (xop0), - copy_rtx (xop1)), - REG_NOTES (temp)); + set_unique_reg_note (temp, + REG_EQUAL, + gen_rtx_fmt_ee (binoptab->code, mode, + copy_rtx (xop0), + copy_rtx (xop1))); } return target; } @@ -1173,12 +1170,11 @@ expand_binop (mode, binoptab, op0, op1, target, unsignedp, methods) if (mov_optab->handlers[(int) mode].insn_code != CODE_FOR_nothing) { temp = emit_move_insn (product, product); - REG_NOTES (temp) - = gen_rtx_EXPR_LIST (REG_EQUAL, - gen_rtx_fmt_ee (MULT, mode, - copy_rtx (op0), - copy_rtx (op1)), - REG_NOTES (temp)); + set_unique_reg_note (temp, + REG_EQUAL, + gen_rtx_fmt_ee (MULT, mode, + copy_rtx (op0), + copy_rtx (op1))); } return product; } @@ -2545,8 +2541,7 @@ emit_no_conflict_block (insns, target, op0, op1, equiv) { last = emit_move_insn (target, target); if (equiv) - REG_NOTES (last) - = gen_rtx_EXPR_LIST (REG_EQUAL, equiv, REG_NOTES (last)); + set_unique_reg_note (last, REG_EQUAL, equiv); } else last = get_last_insn (); @@ -2659,8 +2654,7 @@ emit_libcall_block (insns, target, result, equiv) last = emit_move_insn (target, result); if (mov_optab->handlers[(int) GET_MODE (target)].insn_code != CODE_FOR_nothing) - REG_NOTES (last) = gen_rtx_EXPR_LIST (REG_EQUAL, copy_rtx (equiv), - REG_NOTES (last)); + set_unique_reg_note (last, REG_EQUAL, copy_rtx (equiv)); if (prev == 0) first = get_insns (); @@ -3945,12 +3939,11 @@ expand_fix (to, from, unsignedp) { /* Make a place for a REG_NOTE and add it. */ insn = emit_move_insn (to, to); - REG_NOTES (insn) - = gen_rtx_EXPR_LIST (REG_EQUAL, - gen_rtx_fmt_e (UNSIGNED_FIX, - GET_MODE (to), - copy_rtx (from)), - REG_NOTES (insn)); + set_unique_reg_note (insn, + REG_EQUAL, + gen_rtx_fmt_e (UNSIGNED_FIX, + GET_MODE (to), + copy_rtx (from))); } return; } -- cgit v1.1