Commit 0e64f197 by Jeffrey A Law Committed by Jeff Law

sparc.md (TFmode splits): Use reg_overlap_mentioned_p to detect when the source…

sparc.md (TFmode splits): Use reg_overlap_mentioned_p to detect when the source and destination overlap.

        * sparc.md (TFmode splits): Use reg_overlap_mentioned_p to detect
        when the source and destination overlap.

From-SVN: r21933
parent ea90cb62
Mon Aug 24 10:25:46 1998 Jeffrey A Law (law@cygnus.com) Mon Aug 24 10:25:46 1998 Jeffrey A Law (law@cygnus.com)
* sparc.md (TFmode splits): Use reg_overlap_mentioned_p to detect
when the source and destination overlap.
* stmt.c (emit_case_nodes): Change rtx_function to rtx_fn to avoid * stmt.c (emit_case_nodes): Change rtx_function to rtx_fn to avoid
clash with global type. clash with global type.
......
...@@ -2661,7 +2661,7 @@ ...@@ -2661,7 +2661,7 @@
/* Now emit using the real source and destination we found, swapping /* Now emit using the real source and destination we found, swapping
the order if we detect overlap. */ the order if we detect overlap. */
if (REGNO (dest1) == REGNO (src2)) if (reg_overlap_mentioned_p (dest1, src2))
{ {
emit_insn (gen_movsi (dest2, src2)); emit_insn (gen_movsi (dest2, src2));
emit_insn (gen_movsi (dest1, src1)); emit_insn (gen_movsi (dest1, src1));
...@@ -2692,8 +2692,8 @@ ...@@ -2692,8 +2692,8 @@
rtx low_part = gen_lowpart (SImode, operands[0]); rtx low_part = gen_lowpart (SImode, operands[0]);
int self_reference; int self_reference;
self_reference = reg_mentioned_p (operands[0], self_reference = reg_overlap_mentioned_p (operands[0],
XEXP (XEXP (word1, 0), 0)); XEXP (XEXP (word1, 0), 0));
if (self_reference != 0 if (self_reference != 0
&& WORDS_BIG_ENDIAN) && WORDS_BIG_ENDIAN)
{ {
...@@ -3119,7 +3119,7 @@ ...@@ -3119,7 +3119,7 @@
/* Now emit using the real source and destination we found, swapping /* Now emit using the real source and destination we found, swapping
the order if we detect overlap. */ the order if we detect overlap. */
if (REGNO(dest1) == REGNO(src2)) if (reg_overlap_mentioned_p (dest1, src2))
{ {
emit_insn (gen_movsf (dest2, src2)); emit_insn (gen_movsf (dest2, src2));
emit_insn (gen_movsf (dest1, src1)); emit_insn (gen_movsf (dest1, src1));
...@@ -3151,8 +3151,8 @@ ...@@ -3151,8 +3151,8 @@
plus_constant_for_output (XEXP (word0, 0), 4)); plus_constant_for_output (XEXP (word0, 0), 4));
int self_reference; int self_reference;
self_reference = reg_mentioned_p (operands[0], self_reference = reg_overlap_mentioned_p (operands[0],
XEXP (XEXP (word1, 0), 0)); XEXP (XEXP (word1, 0), 0));
if (GET_CODE (operands[0]) == SUBREG) if (GET_CODE (operands[0]) == SUBREG)
operands[0] = alter_subreg (operands[0]); operands[0] = alter_subreg (operands[0]);
...@@ -3354,7 +3354,7 @@ ...@@ -3354,7 +3354,7 @@
/* Now emit using the real source and destination we found, swapping /* Now emit using the real source and destination we found, swapping
the order if we detect overlap. */ the order if we detect overlap. */
if (REGNO(dest1) == REGNO(src2)) if (reg_overlap_mentioned_p (dest1, src2))
{ {
emit_insn (gen_movdf (dest2, src2)); emit_insn (gen_movdf (dest2, src2));
emit_insn (gen_movdf (dest1, src1)); emit_insn (gen_movdf (dest1, src1));
...@@ -3379,8 +3379,8 @@ ...@@ -3379,8 +3379,8 @@
rtx word1 = change_address (operands[1], DFmode, rtx word1 = change_address (operands[1], DFmode,
plus_constant_for_output (XEXP (word0, 0), 8)); plus_constant_for_output (XEXP (word0, 0), 8));
rtx dest1, dest2; rtx dest1, dest2;
int self_reference = reg_mentioned_p (operands[0], int self_reference = reg_overlap_mentioned_p (operands[0],
XEXP (XEXP (word1, 0), 0)); XEXP (XEXP (word1, 0), 0));
/* Ugly, but gen_highpart will crap out here for 32-bit targets. */ /* Ugly, but gen_highpart will crap out here for 32-bit targets. */
dest1 = gen_rtx_SUBREG (DFmode, operands[0], WORDS_BIG_ENDIAN == 0); dest1 = gen_rtx_SUBREG (DFmode, operands[0], WORDS_BIG_ENDIAN == 0);
......
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