aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDavid Edelsohn <edelsohn@gnu.org>2001-03-08 05:44:49 +0000
committerDavid Edelsohn <dje@gcc.gnu.org>2001-03-08 00:44:49 -0500
commit251b366767b31aa5e2e98ccf2af89a07501c498f (patch)
tree8312209ef059c3542392d7631ae534757a7128ea /gcc
parentc9a54638a4ec619f531bd85803574eb0f4aa0c95 (diff)
downloadgcc-251b366767b31aa5e2e98ccf2af89a07501c498f.zip
gcc-251b366767b31aa5e2e98ccf2af89a07501c498f.tar.gz
gcc-251b366767b31aa5e2e98ccf2af89a07501c498f.tar.bz2
rs6000.md (cr logic): Add original POWER mnemonic alternative for crnot.
* rs6000.md (cr logic): Add original POWER mnemonic alternative for crnot. Set operands[5] in splitter. From-SVN: r40313
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/rs6000/rs6000.md11
2 files changed, 14 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 08ef3fb..d89eea4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2001-03-07 David Edelsohn <edelsohn@gnu.org>
+
+ * rs6000.md (cr logic): Add original POWER mnemonic alternative
+ for crnot. Set operands[5] in splitter.
+
2001-03-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* config/i370/xm-mvs.h, config/i370/xm-oe.h,
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 9df70cf..1629d0a 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -12575,7 +12575,7 @@ operands[2] = GEN_INT (INTVAL (operands[1]) >> 32);
(const_int 0)])
(const_int 0)))]
""
- "crnot %E0,%j1"
+ "{crnor %E0,%j1,%j1|crnot %E0,%j1}"
[(set_attr "type" "cr_logical")])
;; If we are comparing the result of two comparisons, this can be done
@@ -12622,7 +12622,14 @@ operands[2] = GEN_INT (INTVAL (operands[1]) >> 32);
operands[4]);
if (positive_1 == positive_2)
- operands[1] = gen_rtx_NOT (SImode, operands[1]);
+ {
+ operands[1] = gen_rtx_NOT (SImode, operands[1]);
+ operands[5] = constm1_rtx;
+ }
+ else
+ {
+ operands[5] = const1_rtx;
+ }
}")
;; Unconditional branch and return.