]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
*** empty log message ***
authorUlrich Weigand <uweigand@de.ibm.com>
Tue, 12 Apr 2005 20:41:51 +0000 (20:41 +0000)
committerUlrich Weigand <uweigand@gcc.gnu.org>
Tue, 12 Apr 2005 20:41:51 +0000 (20:41 +0000)
From-SVN: r98040

gcc/ChangeLog
gcc/config/s390/s390.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/20050409-1.c [new file with mode: 0644]

index 392eb6702afcfa139df7af067a99e6fcc896ab02..11e50e9234104f76bb6385d67e393ef701de51c6 100644 (file)
@@ -1,3 +1,9 @@
+2005-04-12  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       PR middle-end/20917
+       * config/s390/s390.md ("*set_tp"): Use SET in pattern.
+       ("set_tp_64", "set_tp_31"): Adapt expanded pattern.
+
 2004-04-12  Richard Henderson  <rth@redhat.com>
 
        * config/i386/i386.md (UNSPEC_FIX, UNSPEC_MOVA, UNSPEC_SHUFFLE,
index 022d7791bba6d8f0bfbcc994139ba1ff8cfb0957..65b49dc2d455ed4db5d3a7a40f13c66b83a461aa 100644 (file)
 
 (define_expand "set_tp_64"
   [(set (reg:DI 36) (match_operand:DI 0 "nonimmediate_operand" ""))
-   (unspec_volatile [(reg:DI 36)] UNSPECV_SET_TP)]
+   (set (reg:DI 36) (unspec_volatile:DI [(reg:DI 36)] UNSPECV_SET_TP))]
   "TARGET_64BIT"
   "")
 
 (define_expand "set_tp_31"
   [(set (reg:SI 36) (match_operand:SI 0 "nonimmediate_operand" ""))
-   (unspec_volatile [(reg:SI 36)] UNSPECV_SET_TP)]
+   (set (reg:SI 36) (unspec_volatile:SI [(reg:SI 36)] UNSPECV_SET_TP))]
   "!TARGET_64BIT"
   "")
 
 (define_insn "*set_tp"
-  [(unspec_volatile [(reg 36)] UNSPECV_SET_TP)]
+  [(set (reg 36) (unspec_volatile [(reg 36)] UNSPECV_SET_TP))]
   ""
   ""
   [(set_attr "type" "none")
index d36f43233224c479b53965261de1363c7238206b..3edefec3c8e565889d765415e29512a7c593be64 100644 (file)
@@ -1,3 +1,8 @@
+2005-04-12  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       PR middle-end/20917
+       * gcc.dg/20050409-1.c: New test.
+
 2005-04-12  Andrew Pinski  <pinskia@physics.uc.edu>
 
        * gcc.dg/tree-ssa/alias-1.c: Fix spelling of optimized.
diff --git a/gcc/testsuite/gcc.dg/20050409-1.c b/gcc/testsuite/gcc.dg/20050409-1.c
new file mode 100644 (file)
index 0000000..be85f71
--- /dev/null
@@ -0,0 +1,18 @@
+/* This used to ICE due to a regmove problem on s390.  */
+
+/* { dg-do compile { target s390*-*-* } } */
+/* { dg-options "-O2" } */
+
+
+extern void abort (void);
+extern void **alloc (void);
+
+void *test (void)
+{
+  void **p = alloc ();
+  if (!p) abort ();
+
+  __builtin_set_thread_pointer (p);
+  return *p;
+}
+