]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/28911 (Cross compiler build for m68k--elf fails on x86_64-linux-gnu)
authorKazu Hirata <kazu@codesourcery.com>
Sun, 24 Sep 2006 18:47:25 +0000 (18:47 +0000)
committerKazu Hirata <kazu@gcc.gnu.org>
Sun, 24 Sep 2006 18:47:25 +0000 (18:47 +0000)
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

gcc/ChangeLog
gcc/config/m68k/m68k.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr28911.c [new file with mode: 0644]

index e816362cea0272bc2d4adf0ca79e0fb6d8d4132a..66332b1314ad07da1d17448639d9f07a1f52f98c 100644 (file)
@@ -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.
index d00f131712e3acc46696cd86d9e802cab2ceb97e..ef6cb0484e2e61ba07654aa4934976f314575f9b 100644 (file)
       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)
       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)
       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)
index 7ab082687fffb3bbb82439f30636c8787546553c..93aa08ae7a7d2667c10a11e945388c983d4cdfe8 100644 (file)
@@ -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 (file)
index 0000000..e1748f0
--- /dev/null
@@ -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);
+}