re PR target/56256 (inline asm with {|} alternatives in it no longer accepted)
authorJakub Jelinek <jakub@redhat.com>
Sat, 9 Feb 2013 09:30:45 +0000 (10:30 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Sat, 9 Feb 2013 09:30:45 +0000 (10:30 +0100)
PR target/56256
* config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.

* gcc.target/powerpc/pr56256.c: New test.

From-SVN: r195913

gcc/ChangeLog
gcc/config/rs6000/rs6000.h
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/powerpc/pr56256.c [new file with mode: 0644]

index 1b24e78915448ac3b61dab8377b119547e04d4b3..33f77fa35b1d851b1023ddf15d7104012fa1278e 100644 (file)
@@ -1,3 +1,8 @@
+2013-02-09  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/56256
+       * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
+
 2013-02-08  Vladimir Makarov  <vmakarov@redhat.com>
 
        PR rtl-optimization/56246
index b015652d01835a264d4965c34e3c4fcb6b6e4265..b5c79ea6e958f1f108167bfaa2a64c3b05ffd1db 100644 (file)
@@ -356,6 +356,12 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
 #define PROCESSOR_DEFAULT   PROCESSOR_PPC603
 #define PROCESSOR_DEFAULT64 PROCESSOR_RS64A
 
+/* Specify the dialect of assembler to use.  Only new mnemonics are supported
+   starting with GCC 4.8, i.e. just one dialect, but for backwards
+   compatibility with older inline asm ASSEMBLER_DIALECT needs to be
+   defined.  */
+#define ASSEMBLER_DIALECT 1
+
 /* Debug support */
 #define MASK_DEBUG_STACK       0x01    /* debug stack applications */
 #define        MASK_DEBUG_ARG          0x02    /* debug argument handling */
index b95854947d1efe3444942ed223050c271ea185ee..557c8fef5d2cb7df0dd8f50a45fd166083562c10 100644 (file)
@@ -1,3 +1,8 @@
+2013-02-09  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/56256
+       * gcc.target/powerpc/pr56256.c: New test.
+
 2013-02-08  Ian Lance Taylor  <iant@google.com>
 
        * lib/go.exp: Load timeout.exp.
diff --git a/gcc/testsuite/gcc.target/powerpc/pr56256.c b/gcc/testsuite/gcc.target/powerpc/pr56256.c
new file mode 100644 (file)
index 0000000..6c9501a
--- /dev/null
@@ -0,0 +1,11 @@
+/* PR target/56256 */
+/* { dg-do assemble } */
+/* { dg-options "-O2" } */
+
+int
+foo (void)
+{
+  int a;
+  __asm__ ("{lil|li} %0,%1" : "=r" (a) : "I" (26));
+  return a;
+}