Commit bbc8fb00 by Kazu Hirata Committed by Kazu Hirata

explow.c (copy_all_reg, stabilize): Remove.

	* explow.c (copy_all_reg, stabilize): Remove.
	* expr.h: Remove the corresponding prototypes.

From-SVN: r93683
parent 165a5bad
2005-01-15 Kazu Hirata <kazu@cs.umass.edu>
* explow.c (copy_all_reg, stabilize): Remove.
* expr.h: Remove the corresponding prototypes.
2005-01-14 David Edelsohn <edelsohn@gnu.org> 2005-01-14 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.c (rs6k_nonimmediate_operand): Rename * config/rs6000/rs6000.c (rs6k_nonimmediate_operand): Rename
......
...@@ -390,44 +390,6 @@ convert_memory_address (enum machine_mode to_mode ATTRIBUTE_UNUSED, ...@@ -390,44 +390,6 @@ convert_memory_address (enum machine_mode to_mode ATTRIBUTE_UNUSED,
x, POINTERS_EXTEND_UNSIGNED); x, POINTERS_EXTEND_UNSIGNED);
#endif /* defined(POINTERS_EXTEND_UNSIGNED) */ #endif /* defined(POINTERS_EXTEND_UNSIGNED) */
} }
/* Given a memory address or facsimile X, construct a new address,
currently equivalent, that is stable: future stores won't change it.
X must be composed of constants, register and memory references
combined with addition, subtraction and multiplication:
in other words, just what you can get from expand_expr if sum_ok is 1.
Works by making copies of all regs and memory locations used
by X and combining them the same way X does.
You could also stabilize the reference to this address
by copying the address to a register with copy_to_reg;
but then you wouldn't get indexed addressing in the reference. */
rtx
copy_all_regs (rtx x)
{
if (REG_P (x))
{
if (REGNO (x) != FRAME_POINTER_REGNUM
#if HARD_FRAME_POINTER_REGNUM != FRAME_POINTER_REGNUM
&& REGNO (x) != HARD_FRAME_POINTER_REGNUM
#endif
)
x = copy_to_reg (x);
}
else if (MEM_P (x))
x = copy_to_reg (x);
else if (GET_CODE (x) == PLUS || GET_CODE (x) == MINUS
|| GET_CODE (x) == MULT)
{
rtx op0 = copy_all_regs (XEXP (x, 0));
rtx op1 = copy_all_regs (XEXP (x, 1));
if (op0 != XEXP (x, 0) || op1 != XEXP (x, 1))
x = gen_rtx_fmt_ee (GET_CODE (x), Pmode, op0, op1);
}
return x;
}
/* Return something equivalent to X but valid as a memory address /* Return something equivalent to X but valid as a memory address
for something of mode MODE. When X is not itself valid, this for something of mode MODE. When X is not itself valid, this
...@@ -576,22 +538,6 @@ validize_mem (rtx ref) ...@@ -576,22 +538,6 @@ validize_mem (rtx ref)
return replace_equiv_address (ref, XEXP (ref, 0)); return replace_equiv_address (ref, XEXP (ref, 0));
} }
/* Return a modified copy of X with its memory address copied
into a temporary register to protect it from side effects.
If X is not a MEM, it is returned unchanged (and not copied).
Perhaps even if it is a MEM, if there is no need to change it. */
rtx
stabilize (rtx x)
{
if (!MEM_P (x)
|| ! rtx_unstable_p (XEXP (x, 0)))
return x;
return
replace_equiv_address (x, force_reg (Pmode, copy_all_regs (XEXP (x, 0))));
}
/* Copy the value or contents of X to a new temp reg and return that reg. */ /* Copy the value or contents of X to a new temp reg and return that reg. */
rtx rtx
......
...@@ -642,14 +642,6 @@ extern void set_mem_attributes_minus_bitpos (rtx, tree, int, HOST_WIDE_INT); ...@@ -642,14 +642,6 @@ extern void set_mem_attributes_minus_bitpos (rtx, tree, int, HOST_WIDE_INT);
/* Assemble the static constant template for function entry trampolines. */ /* Assemble the static constant template for function entry trampolines. */
extern rtx assemble_trampoline_template (void); extern rtx assemble_trampoline_template (void);
/* Given rtx, return new rtx whose address won't be affected by
any side effects. It has been copied to a new temporary reg. */
extern rtx stabilize (rtx);
/* Given an rtx, copy all regs it refers to into new temps
and return a modified copy that refers to the new temps. */
extern rtx copy_all_regs (rtx);
/* Copy given rtx to a new temp reg and return that. */ /* Copy given rtx to a new temp reg and return that. */
extern rtx copy_to_reg (rtx); extern rtx copy_to_reg (rtx);
......
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