pa.md (height reduction patterns): Add checks for overlapping operands to avoid semantic-destroying splits for...

Tue Nov  2 14:21:37 1999  Jason Eckhardt  <jle@cygnus.com>

        * config/pa/pa.md (height reduction patterns): Add checks for
        overlapping operands to avoid semantic-destroying splits for
        height reduction patterns.

From-SVN: r30355
This commit is contained in:
Jason Eckhardt 1999-11-02 20:29:50 +00:00
parent 1a87de8db5
commit b21534148c
2 changed files with 38 additions and 11 deletions

View File

@ -1,3 +1,9 @@
Tue Nov 2 14:21:37 1999 Jason Eckhardt <jle@cygnus.com>
* config/pa/pa.md (height reduction patterns): Add checks for
overlapping operands to avoid semantic-destroying splits for
height reduction patterns.
Tue Nov 2 15:27:31 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
* configure.in (m68k-hp-hpux*, xm_alloca.h): The underscore should
@ -85,6 +91,7 @@ Mon Nov 1 15:41:01 1999 Mark P. Mitchell <mark@codesourcery.com>
* combine.c (combine_instructions): Use xmalloc instead of alloca.
>>>>>>> 1.4890
Mon Nov 1 13:22:30 1999 Richard Henderson <rth@cygnus.com>
* toplev.c (rest_of_compilation): Don't optimize the CFG
@ -834,6 +841,7 @@ Wed Oct 27 12:33:40 1999 Mark Mitchell <mark@codesourcery.com>
* stupid.c (find_clobbered_regs): Take additional parameter.
(stupid_life_analysis): Adjust calls to note_stores.
>>>>>>> 1.4876
Wed Oct 27 19:26:12 1999 Nick Clifton <nickc@cygnus.com>
* config/arm/coff.h (STRUCTURE_SIZE_BOUNDARY): Delete

View File

@ -3899,7 +3899,9 @@
(match_operand:DF 3 "register_operand" "f")))
(set (match_operand:DF 4 "register_operand" "=&f")
(mult:DF (match_dup 1) (match_dup 2)))]
"! TARGET_SOFT_FLOAT && TARGET_PA_20"
"(! TARGET_SOFT_FLOAT && TARGET_PA_20
&& ! (reg_overlap_mentioned_p (operands[4], operands[1])
|| reg_overlap_mentioned_p (operands[4], operands[2])))"
"#"
[(set_attr "type" "fpmuldbl")
(set_attr "length" "8")])
@ -3926,7 +3928,9 @@
(match_operand:SF 3 "register_operand" "f")))
(set (match_operand:SF 4 "register_operand" "=&f")
(mult:SF (match_dup 1) (match_dup 2)))]
"! TARGET_SOFT_FLOAT && TARGET_PA_20"
"(! TARGET_SOFT_FLOAT && TARGET_PA_20
&& ! (reg_overlap_mentioned_p (operands[4], operands[1])
|| reg_overlap_mentioned_p (operands[4], operands[2])))"
"#"
[(set_attr "type" "fpmuldbl")
(set_attr "length" "8")])
@ -3972,7 +3976,9 @@
(match_operand:DF 2 "register_operand" "f"))))
(set (match_operand:DF 3 "register_operand" "=&f")
(mult:DF (match_dup 1) (match_dup 2)))]
"! TARGET_SOFT_FLOAT && TARGET_PA_20"
"(! TARGET_SOFT_FLOAT && TARGET_PA_20
&& ! (reg_overlap_mentioned_p (operands[3], operands[1])
|| reg_overlap_mentioned_p (operands[3], operands[2])))"
"#"
[(set_attr "type" "fpmuldbl")
(set_attr "length" "8")])
@ -3994,7 +4000,9 @@
(match_operand:SF 2 "register_operand" "f"))))
(set (match_operand:SF 3 "register_operand" "=&f")
(mult:SF (match_dup 1) (match_dup 2)))]
"! TARGET_SOFT_FLOAT && TARGET_PA_20"
"(! TARGET_SOFT_FLOAT && TARGET_PA_20
&& ! (reg_overlap_mentioned_p (operands[3], operands[1])
|| reg_overlap_mentioned_p (operands[3], operands[2])))"
"#"
[(set_attr "type" "fpmuldbl")
(set_attr "length" "8")])
@ -4038,7 +4046,9 @@
(match_operand:DF 3 "register_operand" "f")))
(set (match_operand:DF 4 "register_operand" "=&f")
(mult:DF (match_dup 1) (match_dup 2)))]
"! TARGET_SOFT_FLOAT && TARGET_PA_20"
"(! TARGET_SOFT_FLOAT && TARGET_PA_20
&& ! (reg_overlap_mentioned_p (operands[4], operands[1])
|| reg_overlap_mentioned_p (operands[4], operands[2])))"
"#"
[(set_attr "type" "fpmuldbl")
(set_attr "length" "8")])
@ -4063,7 +4073,9 @@
(match_operand:SF 3 "register_operand" "f")))
(set (match_operand:SF 4 "register_operand" "=&f")
(mult:SF (match_dup 1) (match_dup 2)))]
"! TARGET_SOFT_FLOAT && TARGET_PA_20"
"(! TARGET_SOFT_FLOAT && TARGET_PA_20
&& ! (reg_overlap_mentioned_p (operands[4], operands[1])
|| reg_overlap_mentioned_p (operands[4], operands[2])))"
"#"
[(set_attr "type" "fpmuldbl")
(set_attr "length" "8")])
@ -4088,7 +4100,9 @@
(match_operand:DF 2 "register_operand" "f"))))
(set (match_operand:DF 4 "register_operand" "=&f")
(mult:DF (match_dup 1) (match_dup 2)))]
"! TARGET_SOFT_FLOAT && TARGET_PA_20"
"(! TARGET_SOFT_FLOAT && TARGET_PA_20
&& ! (reg_overlap_mentioned_p (operands[4], operands[1])
|| reg_overlap_mentioned_p (operands[4], operands[2])))"
"#"
[(set_attr "type" "fpmuldbl")
(set_attr "length" "8")])
@ -4113,7 +4127,9 @@
(match_operand:SF 2 "register_operand" "f"))))
(set (match_operand:SF 4 "register_operand" "=&f")
(mult:SF (match_dup 1) (match_dup 2)))]
"! TARGET_SOFT_FLOAT && TARGET_PA_20"
"(! TARGET_SOFT_FLOAT && TARGET_PA_20
&& ! (reg_overlap_mentioned_p (operands[4], operands[1])
|| reg_overlap_mentioned_p (operands[4], operands[2])))"
"#"
[(set_attr "type" "fpmuldbl")
(set_attr "length" "8")])
@ -4135,7 +4151,8 @@
[(set (match_operand:DF 0 "register_operand" "=f")
(neg:DF (abs:DF (match_operand:DF 1 "register_operand" "f"))))
(set (match_operand:DF 2 "register_operand" "=&f") (abs:DF (match_dup 1)))]
"! TARGET_SOFT_FLOAT && TARGET_PA_20"
"(! TARGET_SOFT_FLOAT && TARGET_PA_20
&& ! reg_overlap_mentioned_p (operands[2], operands[1]))"
"#"
[(set_attr "type" "fpalu")
(set_attr "length" "8")])
@ -4153,7 +4170,8 @@
[(set (match_operand:SF 0 "register_operand" "=f")
(neg:SF (abs:SF (match_operand:SF 1 "register_operand" "f"))))
(set (match_operand:SF 2 "register_operand" "=&f") (abs:SF (match_dup 1)))]
"! TARGET_SOFT_FLOAT && TARGET_PA_20"
"(! TARGET_SOFT_FLOAT && TARGET_PA_20
&& ! reg_overlap_mentioned_p (operands[2], operands[1]))"
"#"
[(set_attr "type" "fpalu")
(set_attr "length" "8")])
@ -4241,7 +4259,8 @@
(set (match_operand:SI 4 "register_operand" "=&r")
(ashift:SI (match_dup 2)
(match_operand:SI 5 "const_int_operand" "i")))]
"INTVAL (operands[5]) == exact_log2 (INTVAL (operands[3]))"
"(INTVAL (operands[5]) == exact_log2 (INTVAL (operands[3]))
&& ! (reg_overlap_mentioned_p (operands[4], operands[2])))"
"#"
[(set_attr "type" "binary")
(set_attr "length" "8")])