Hi

FWIW the backport from trunk in r106872 breaks the gcc build
Something like attached is missing from backport



-- 
-Khem
Index: gcc-4_6-branch/gcc/config/arm/arm.c
===================================================================
--- gcc-4_6-branch.orig/gcc/config/arm/arm.c	2012-03-05 17:14:09.901129286 -0800
+++ gcc-4_6-branch/gcc/config/arm/arm.c	2012-03-05 17:18:23.061141606 -0800
@@ -17525,6 +17525,13 @@
       }
       return;
 
+    case 'v':
+      {
+        gcc_assert (GET_CODE (x) == CONST_DOUBLE);
+        fprintf (stream, "#%d", vfp3_const_double_for_fract_bits (x));
+        return;
+      }
+
     /* Register specifier for vld1.16/vst1.16.  Translate the S register
        number into a D register number and element index.  */
     case 'z':
@@ -24925,4 +24932,26 @@
   return 4;
 }
 
+int
+vfp3_const_double_for_fract_bits (rtx operand)
+{
+  REAL_VALUE_TYPE r0;
+  
+  if (GET_CODE (operand) != CONST_DOUBLE)
+    return 0;
+  
+  REAL_VALUE_FROM_CONST_DOUBLE (r0, operand);
+  if (exact_real_inverse (DFmode, &r0))
+    {
+      if (exact_real_truncate (DFmode, &r0))
+       {
+	 HOST_WIDE_INT value = real_to_integer (&r0);
+	 value = value & 0xffffffff;
+	 if ((value != 0) && ( (value & (value - 1)) == 0))
+	   return int_log2 (value);
+       }
+    }
+  return 0;
+}
+
 #include "gt-arm.h"
_______________________________________________
linaro-toolchain mailing list
linaro-toolchain@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-toolchain

Reply via email to