]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/58330 (powerpc64 atomic store split in two)
authorAlan Modra <amodra@gmail.com>
Mon, 9 Sep 2013 23:48:10 +0000 (09:18 +0930)
committerAlan Modra <amodra@gcc.gnu.org>
Mon, 9 Sep 2013 23:48:10 +0000 (09:18 +0930)
PR target/58330
gcc/
* config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems.
gcc/testsuite/
* gcc.target/powerpc/pr58330.c: New.

From-SVN: r202418

gcc/ChangeLog
gcc/config/rs6000/rs6000.md
gcc/testsuite/ChangeLog

index 42d1dc7249cb6f7a38ce1b2c9150eb6d8523c4a5..56de596feaae1e9dbca1c8ea129a06840b199c7b 100644 (file)
@@ -1,3 +1,8 @@
+2013-09-10  Alan Modra  <amodra@gmail.com>
+
+       PR target/58330
+       * config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems.
+
 2013-09-10  Alan Modra  <amodra@gmail.com>
 
        * config/rs6000/predicates.md (add_cint_operand): New.
index 0757d4de5ad564f490056c11932dd637284b49dc..9f749f9a591db1433283fdb44949c94b0ddb7838 100644 (file)
    (clobber (match_scratch:DI 3 "=&r,&r,&r"))
    (clobber (match_scratch:DI 4 "=&r,X,&r"))]
   "TARGET_POWERPC64 && !TARGET_LDBRX
-   && (REG_P (operands[0]) || REG_P (operands[1]))"
+   && (REG_P (operands[0]) || REG_P (operands[1]))
+   && !(MEM_P (operands[0]) && MEM_VOLATILE_P (operands[0]))
+   && !(MEM_P (operands[1]) && MEM_VOLATILE_P (operands[1]))"
   "#"
   [(set_attr "length" "16,12,36")])
 
index 61d1469f1a8e970a2b5b823dbd5514d41b189b42..ecfd09142f7ac62f82f23834ee93fc810627756b 100644 (file)
@@ -1,3 +1,7 @@
+2013-09-10  Alan Modra  <amodra@gmail.com>
+
+       * gcc.target/powerpc/pr58330.c: New.
+
 2013-09-10  Alan Modra  <amodra@gmail.com>
 
        * gcc.target/powerpc/medium_offset.c: New.