diff options
author | Andrew Macleod <amacleod@gcc.gnu.org> | 1999-03-25 12:04:26 +0000 |
---|---|---|
committer | Andrew Macleod <amacleod@gcc.gnu.org> | 1999-03-25 12:04:26 +0000 |
commit | 5fa671cf5bd476ab9af10e8a46d6c9794b8b502f (patch) | |
tree | bffac5b3fcd8d8e13bda763506061f3f994a2afc /gcc/optabs.c | |
parent | 7e5bda2c38632a42a84b0c993344e5532597f29c (diff) | |
download | gcc-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.c | 43 |
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; } |