]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
2009-07-22 Doug Kwan <dougkwan@google.com>
authorDoug Kwan <dougkwan@google.com>
Wed, 22 Jul 2009 18:06:08 +0000 (18:06 +0000)
committerDoug Kwan <dougkwan@gcc.gnu.org>
Wed, 22 Jul 2009 18:06:08 +0000 (18:06 +0000)
ChangeLog:

* config/arm/arm.md (subdi3) Copy non-reg values to DImode registers.

testsuite/ChangeLog:

* gcc.c-torture/compile/20090721-1.c: New test.

From-SVN: r149951

gcc/ChangeLog
gcc/config/arm/arm.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/compile/20090721-1.c [new file with mode: 0644]

index 018e805b90035990a6570d63257be75886b82b69..522968000e3193388809793fca07b8066da03338 100644 (file)
@@ -1,3 +1,7 @@
+2009-07-22  Doug Kwan  <dougkwan@google.com>
+
+       * config/arm/arm.md (subdi3) Copy non-reg values to DImode registers.
+
 2009-07-22  Michael Matz  <matz@suse.de>
 
        PR tree-optimization/35229
index 809f2c49b97e1e205548aac74a79abf120e5ee4d..7aaa4c65f4ed321d7850efd8953931c3e89a5551 100644 (file)
   if (TARGET_THUMB1)
     {
       if (GET_CODE (operands[1]) != REG)
-        operands[1] = force_reg (SImode, operands[1]);
+        operands[1] = force_reg (DImode, operands[1]);
       if (GET_CODE (operands[2]) != REG)
-        operands[2] = force_reg (SImode, operands[2]);
+        operands[2] = force_reg (DImode, operands[2]);
      } 
   "
 )
index efad8ee55e605becbfe31560ff0762237323c9f8..2c065ffedd3e818bf0b9cefd33d63a91815bc548 100644 (file)
@@ -1,3 +1,7 @@
+2009-07-22  Doug Kwan  <dougkwan@google.com>
+
+       * gcc.c-torture/compile/20090721-1.c: New test.
+
 2009-07-22  Michael Matz  <matz@suse.de>
 
        PR tree-optimization/35229
diff --git a/gcc/testsuite/gcc.c-torture/compile/20090721-1.c b/gcc/testsuite/gcc.c-torture/compile/20090721-1.c
new file mode 100644 (file)
index 0000000..2122b34
--- /dev/null
@@ -0,0 +1,3 @@
+/* { dg-options "-fno-tree-sra" } */
+union u {double d;long long ll;};
+f(double x, int n){union u v;v.d=x;if(n>=0){v.ll<<=63;}else{v.ll-=1<<-n;v.ll>>=-n;}return v.ll;}