diff options
author | jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-06-28 19:40:03 +0000 |
---|---|---|
committer | jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-06-28 19:40:03 +0000 |
commit | 49923c5194591b52e0a0ecc78c43d6279b4bf9e4 (patch) | |
tree | dd09b607d835b86880e74fde9c35f2dc55b20c8a | |
parent | 4d379b6082c0fcd903e96fae40ab91e97c8c1cd2 (diff) | |
download | gcc-49923c5194591b52e0a0ecc78c43d6279b4bf9e4.tar.gz |
* config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
constants for E500 double.
testsuite:
* gcc.c-torture/compile/20080628-1.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@137232 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/rs6000/predicates.md | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/20080628-1.c | 15 |
4 files changed, 27 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 909e4a69338..22c364936dd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2008-06-28 Joseph Myers <joseph@codesourcery.com> + + * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode + constants for E500 double. + 2008-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> * doc/rtl.texi (const_vector): Document const_fixed as legitimate diff --git a/gcc/config/rs6000/predicates.md b/gcc/config/rs6000/predicates.md index 98cbdc64f91..8e97c79acd2 100644 --- a/gcc/config/rs6000/predicates.md +++ b/gcc/config/rs6000/predicates.md @@ -213,6 +213,9 @@ switch (mode) { case TFmode: + if (TARGET_E500_DOUBLE) + return 0; + REAL_VALUE_FROM_CONST_DOUBLE (rv, op); REAL_VALUE_TO_TARGET_LONG_DOUBLE (rv, k); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 39d0a71a401..b56104c3238 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2008-06-28 Joseph Myers <joseph@codesourcery.com> + + * gcc.c-torture/compile/20080628-1.c: New test. + 2008-06-28 Richard Guenther <rguenther@suse.de> * gcc.c-torture/execute/pta-field-1.c: Add return 0. diff --git a/gcc/testsuite/gcc.c-torture/compile/20080628-1.c b/gcc/testsuite/gcc.c-torture/compile/20080628-1.c new file mode 100644 index 00000000000..aca4ff82777 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/20080628-1.c @@ -0,0 +1,15 @@ +void f (long double, long double); + +struct s { + char c; + struct s *p; +} *p; + +void +g (void) +{ + long double ld; + p->p->c = 1; + ld = p->p->c; + f (ld, 1.0L); +} |