From 33115a2c7f3685cd49eb5080911e3dabd0b43d1e Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Tue, 10 Sep 2013 09:18:10 +0930 Subject: [PATCH] re PR target/58330 (powerpc64 atomic store split in two) 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 | 5 +++++ gcc/config/rs6000/rs6000.md | 4 +++- gcc/testsuite/ChangeLog | 4 ++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 42d1dc7249c..56de596feaa 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2013-09-10 Alan Modra + + PR target/58330 + * config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems. + 2013-09-10 Alan Modra * config/rs6000/predicates.md (add_cint_operand): New. diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 0757d4de5ad..9f749f9a591 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -2376,7 +2376,9 @@ (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")]) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 61d1469f1a8..ecfd09142f7 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2013-09-10 Alan Modra + + * gcc.target/powerpc/pr58330.c: New. + 2013-09-10 Alan Modra * gcc.target/powerpc/medium_offset.c: New. -- 2.30.2