Commit 5fa671cf by Andrew Macleod

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
parent 7e5bda2c
...@@ -305,9 +305,7 @@ add_equal_note (seq, target, code, op0, op1) ...@@ -305,9 +305,7 @@ add_equal_note (seq, target, code, op0, op1)
else else
note = gen_rtx_fmt_ee (code, GET_MODE (target), copy_rtx (op0), copy_rtx (op1)); note = gen_rtx_fmt_ee (code, GET_MODE (target), copy_rtx (op0), copy_rtx (op1));
REG_NOTES (XVECEXP (seq, 0, XVECLEN (seq, 0) - 1)) set_unique_reg_note (XVECEXP (seq, 0, XVECLEN (seq, 0) - 1), REG_EQUAL, note);
= gen_rtx_EXPR_LIST (REG_EQUAL, note,
REG_NOTES (XVECEXP (seq, 0, XVECLEN (seq, 0) - 1)));
return 1; return 1;
} }
...@@ -990,12 +988,11 @@ expand_binop (mode, binoptab, op0, op1, target, unsignedp, methods) ...@@ -990,12 +988,11 @@ expand_binop (mode, binoptab, op0, op1, target, unsignedp, methods)
{ {
rtx temp = emit_move_insn (target, target); rtx temp = emit_move_insn (target, target);
REG_NOTES (temp) set_unique_reg_note (temp,
= gen_rtx_EXPR_LIST (REG_EQUAL, REG_EQUAL,
gen_rtx_fmt_ee (binoptab->code, mode, gen_rtx_fmt_ee (binoptab->code, mode,
copy_rtx (xop0), copy_rtx (xop0),
copy_rtx (xop1)), copy_rtx (xop1)));
REG_NOTES (temp));
} }
return target; return target;
} }
...@@ -1173,12 +1170,11 @@ expand_binop (mode, binoptab, op0, op1, target, unsignedp, methods) ...@@ -1173,12 +1170,11 @@ expand_binop (mode, binoptab, op0, op1, target, unsignedp, methods)
if (mov_optab->handlers[(int) mode].insn_code != CODE_FOR_nothing) if (mov_optab->handlers[(int) mode].insn_code != CODE_FOR_nothing)
{ {
temp = emit_move_insn (product, product); temp = emit_move_insn (product, product);
REG_NOTES (temp) set_unique_reg_note (temp,
= gen_rtx_EXPR_LIST (REG_EQUAL, REG_EQUAL,
gen_rtx_fmt_ee (MULT, mode, gen_rtx_fmt_ee (MULT, mode,
copy_rtx (op0), copy_rtx (op0),
copy_rtx (op1)), copy_rtx (op1)));
REG_NOTES (temp));
} }
return product; return product;
} }
...@@ -2545,8 +2541,7 @@ emit_no_conflict_block (insns, target, op0, op1, equiv) ...@@ -2545,8 +2541,7 @@ emit_no_conflict_block (insns, target, op0, op1, equiv)
{ {
last = emit_move_insn (target, target); last = emit_move_insn (target, target);
if (equiv) if (equiv)
REG_NOTES (last) set_unique_reg_note (last, REG_EQUAL, equiv);
= gen_rtx_EXPR_LIST (REG_EQUAL, equiv, REG_NOTES (last));
} }
else else
last = get_last_insn (); last = get_last_insn ();
...@@ -2659,8 +2654,7 @@ emit_libcall_block (insns, target, result, equiv) ...@@ -2659,8 +2654,7 @@ emit_libcall_block (insns, target, result, equiv)
last = emit_move_insn (target, result); last = emit_move_insn (target, result);
if (mov_optab->handlers[(int) GET_MODE (target)].insn_code if (mov_optab->handlers[(int) GET_MODE (target)].insn_code
!= CODE_FOR_nothing) != CODE_FOR_nothing)
REG_NOTES (last) = gen_rtx_EXPR_LIST (REG_EQUAL, copy_rtx (equiv), set_unique_reg_note (last, REG_EQUAL, copy_rtx (equiv));
REG_NOTES (last));
if (prev == 0) if (prev == 0)
first = get_insns (); first = get_insns ();
...@@ -3945,12 +3939,11 @@ expand_fix (to, from, unsignedp) ...@@ -3945,12 +3939,11 @@ expand_fix (to, from, unsignedp)
{ {
/* Make a place for a REG_NOTE and add it. */ /* Make a place for a REG_NOTE and add it. */
insn = emit_move_insn (to, to); insn = emit_move_insn (to, to);
REG_NOTES (insn) set_unique_reg_note (insn,
= gen_rtx_EXPR_LIST (REG_EQUAL, REG_EQUAL,
gen_rtx_fmt_e (UNSIGNED_FIX, gen_rtx_fmt_e (UNSIGNED_FIX,
GET_MODE (to), GET_MODE (to),
copy_rtx (from)), copy_rtx (from)));
REG_NOTES (insn));
} }
return; return;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment