diff options
author | Andrew Macleod <amacleod@gcc.gnu.org> | 1999-03-25 12:04:24 +0000 |
---|---|---|
committer | Andrew Macleod <amacleod@gcc.gnu.org> | 1999-03-25 12:04:24 +0000 |
commit | 87b47c855df767801628050c9a3e5cb678f67c48 (patch) | |
tree | 00dd4d5a9aac9fc759eff7ed802a3e53fdc88cea /gcc/emit-rtl.c | |
parent | b664de3a04685f7558b80df9f172deb8decebeff (diff) | |
download | gcc-87b47c855df767801628050c9a3e5cb678f67c48.zip gcc-87b47c855df767801628050c9a3e5cb678f67c48.tar.gz gcc-87b47c855df767801628050c9a3e5cb678f67c48.tar.bz2 |
rtl.texi (RTX_FRAME_RELATED_P): Add documentation.
a
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: r25978
Diffstat (limited to 'gcc/emit-rtl.c')
-rw-r--r-- | gcc/emit-rtl.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index c7ff596..eec6b06 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -3149,6 +3149,24 @@ force_next_line_note () { last_linenum = -1; } + +/* Place a note of KIND on insn INSN with DATUM as the datum. If a + note of this type already exists, remove it first. */ + +void +set_unique_reg_note (insn, kind, datum) + rtx insn; + enum reg_note kind; + rtx datum; +{ + rtx note = find_reg_note (insn, kind, NULL_RTX); + + /* First remove the note if there already is one. */ + if (note) + remove_note (insn, note); + + REG_NOTES (insn) = gen_rtx_EXPR_LIST (kind, datum, REG_NOTES (insn)); +} /* Return an indication of which type of insn should have X as a body. The value is CODE_LABEL, INSN, CALL_INSN or JUMP_INSN. */ |