OSDN Git Service

2009-07-22 Doug Kwan <dougkwan@google.com>
authordougkwan <dougkwan@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 22 Jul 2009 18:06:08 +0000 (18:06 +0000)
committerdougkwan <dougkwan@138bc75d-0d04-0410-961f-82ee72b054a4>
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@149951 138bc75d-0d04-0410-961f-82ee72b054a4

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 018e805..5229680 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 809f2c4..7aaa4c6 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 efad8ee..2c065ff 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;}