diff options
author | Kazu Hirata <kazu@codesourcery.com> | 2006-09-24 18:47:25 +0000 |
---|---|---|
committer | Kazu Hirata <kazu@gcc.gnu.org> | 2006-09-24 18:47:25 +0000 |
commit | ab1e659cf766a49fe1923fefc9cbacbd4e320fc4 (patch) | |
tree | 2d48537026a683c3f220816d7acfb3b5cf0fc28f /gcc | |
parent | 5997afc39fe0f3f940209f2eb65a946683dcb055 (diff) | |
download | gcc-ab1e659cf766a49fe1923fefc9cbacbd4e320fc4.zip gcc-ab1e659cf766a49fe1923fefc9cbacbd4e320fc4.tar.gz gcc-ab1e659cf766a49fe1923fefc9cbacbd4e320fc4.tar.bz2 |
re PR target/28911 (Cross compiler build for m68k--elf fails on x86_64-linux-gnu)
gcc/
PR target/28911
* config/m68k/m68k.md (negsf2, negdf2, negxf2): Use
-2147483647 - 1 instead of 0x80000000.
gcc/testsuite/
PR target/28911
* gcc.dg/pr28911.c: New.
From-SVN: r117181
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/m68k/m68k.md | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr28911.c | 13 |
4 files changed, 27 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e816362..66332b1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2006-09-24 Kazu Hirata <kazu@codesourcery.com> + + PR target/28911 + * config/m68k/m68k.md (negsf2, negdf2, negxf2): Use + -2147483647 - 1 instead of 0x80000000. + 2006-09-23 Revital1 Eres <ERES@il.ibm.com> * flags.h (HONOR_NANS): Fix typo in comment. diff --git a/gcc/config/m68k/m68k.md b/gcc/config/m68k/m68k.md index d00f131..ef6cb04 100644 --- a/gcc/config/m68k/m68k.md +++ b/gcc/config/m68k/m68k.md @@ -3721,7 +3721,7 @@ target = operand_subword_force (operands[0], 0, SFmode); result = expand_binop (SImode, xor_optab, operand_subword_force (operands[1], 0, SFmode), - GEN_INT (0x80000000), target, 0, OPTAB_WIDEN); + GEN_INT (-2147483647 - 1), target, 0, OPTAB_WIDEN); gcc_assert (result); if (result != target) @@ -3748,7 +3748,7 @@ target = operand_subword (operands[0], 0, 1, DFmode); result = expand_binop (SImode, xor_optab, operand_subword_force (operands[1], 0, DFmode), - GEN_INT (0x80000000), target, 0, OPTAB_WIDEN); + GEN_INT (-2147483647 - 1), target, 0, OPTAB_WIDEN); gcc_assert (result); if (result != target) @@ -3780,7 +3780,7 @@ target = operand_subword (operands[0], 0, 1, XFmode); result = expand_binop (SImode, xor_optab, operand_subword_force (operands[1], 0, XFmode), - GEN_INT (0x80000000), target, 0, OPTAB_WIDEN); + GEN_INT (-2147483647 - 1), target, 0, OPTAB_WIDEN); gcc_assert (result); if (result != target) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7ab0826..93aa08a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2006-09-24 Kazu Hirata <kazu@codesourcery.com> + + PR target/28911 + * gcc.dg/pr28911.c: New. + 2006-09-23 Uros Bizjak <uros@kss-loka.si> PR target/29169 diff --git a/gcc/testsuite/gcc.dg/pr28911.c b/gcc/testsuite/gcc.dg/pr28911.c new file mode 100644 index 0000000..e1748f0 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr28911.c @@ -0,0 +1,13 @@ +/* PR target/28911 + The following used to cause crash on m68k-elf because 0x80000000 + was used as an SImode constant. */ + +/* { dg-do compile } */ +/* { dg-options "-O2" } */ +/* { dg-options "-O2 -m68000" { target m68k-*-* } } */ + +_Complex float +foo (float a) +{ + return __builtin_copysign (a != a, a); +} |