From ca11b3fb997da7fc100bebcbfb2b2928dc6b1949 Mon Sep 17 00:00:00 2001 From: Ulrich Weigand Date: Tue, 12 Apr 2005 20:41:51 +0000 Subject: [PATCH] *** empty log message *** From-SVN: r98040 --- gcc/ChangeLog | 6 ++++++ gcc/config/s390/s390.md | 6 +++--- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.dg/20050409-1.c | 18 ++++++++++++++++++ 4 files changed, 32 insertions(+), 3 deletions(-) create mode 100644 gcc/testsuite/gcc.dg/20050409-1.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 392eb67..11e50e9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2005-04-12 Ulrich Weigand + + 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 * config/i386/i386.md (UNSPEC_FIX, UNSPEC_MOVA, UNSPEC_SHUFFLE, diff --git a/gcc/config/s390/s390.md b/gcc/config/s390/s390.md index 022d779..65b49dc 100644 --- a/gcc/config/s390/s390.md +++ b/gcc/config/s390/s390.md @@ -7784,18 +7784,18 @@ (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") diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d36f432..3edefec 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-04-12 Ulrich Weigand + + PR middle-end/20917 + * gcc.dg/20050409-1.c: New test. + 2005-04-12 Andrew Pinski * 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 index 0000000..be85f71 --- /dev/null +++ b/gcc/testsuite/gcc.dg/20050409-1.c @@ -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; +} + -- 2.7.4