summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDoug Gilbert <dgilbert@us.ibm.com>2016-03-18 11:41:35 -0500
committerPatrick Williams <patrick@stwcx.xyz>2016-08-15 11:45:09 -0500
commit0c6c36e8fef06605a16e6de6f38017167fcc75fc (patch)
treec373651e235b6078d039374b33a274d1f8733761
parent2f2eb785a0bc373e8de83e077a3aa6f6c948f791 (diff)
downloadppe42-gcc-0c6c36e8fef06605a16e6de6f38017167fcc75fc.tar.gz
ppe42-gcc-0c6c36e8fef06605a16e6de6f38017167fcc75fc.zip
PPE42 compiler generates invalid crnot instruction
-rw-r--r--gcc/config/rs6000/rs6000.md8
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 4255db4310f..abaca0c934d 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -13088,12 +13088,16 @@
DONE;
}")
+ /* PPE42 does not support asm instructions to directly
+ manipulate the condition register (aka crnot, crxor etc. )
+ so don't support cstore on PPE42 */
+
(define_expand "cstore<mode>4"
[(use (match_operator 1 "rs6000_cbranch_operator"
[(match_operand:GPR 2 "gpc_reg_operand" "")
(match_operand:GPR 3 "reg_or_short_operand" "")]))
(clobber (match_operand:SI 0 "register_operand"))]
- ""
+ "rs6000_cpu != PROCESSOR_PPE42"
"
{
/* Take care of the possibility that operands[3] might be negative but
@@ -13128,7 +13132,7 @@
[(match_operand:FP 2 "gpc_reg_operand" "")
(match_operand:FP 3 "gpc_reg_operand" "")]))
(clobber (match_operand:SI 0 "register_operand"))]
- ""
+ "rs6000_cpu != PROCESSOR_PPE42"
"
{
rs6000_emit_sCOND (<MODE>mode, operands);
OpenPOWER on IntegriCloud