aboutsummaryrefslogtreecommitdiff
path: root/gcc/optabs.c
diff options
context:
space:
mode:
authorAndrew Macleod <amacleod@gcc.gnu.org>1999-03-25 12:04:26 +0000
committerAndrew Macleod <amacleod@gcc.gnu.org>1999-03-25 12:04:26 +0000
commit5fa671cf5bd476ab9af10e8a46d6c9794b8b502f (patch)
treebffac5b3fcd8d8e13bda763506061f3f994a2afc /gcc/optabs.c
parent7e5bda2c38632a42a84b0c993344e5532597f29c (diff)
downloadgcc-5fa671cf5bd476ab9af10e8a46d6c9794b8b502f.zip
gcc-5fa671cf5bd476ab9af10e8a46d6c9794b8b502f.tar.gz
gcc-5fa671cf5bd476ab9af10e8a46d6c9794b8b502f.tar.bz2
rtl.texi (RTX_FRAME_RELATED_P): Add documentation.
Thu Mar 25 14:04:54 EST 1999 Andrew MacLeod <amacleod@cygnus.com> * 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
Diffstat (limited to 'gcc/optabs.c')
-rw-r--r--gcc/optabs.c43
1 files changed, 18 insertions, 25 deletions
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;
}