Index: gcc-4.4.7/gcc/config/arm/cirrus.md
===================================================================
--- gcc-4.4.7.orig/gcc/config/arm/cirrus.md	2013-07-09 23:31:33.000000000 +0200
+++ gcc-4.4.7/gcc/config/arm/cirrus.md	2013-07-10 03:52:16.000000000 +0200
@@ -251,11 +251,13 @@
    (set_attr "cirrus" "normal")]
 )
 
+; Disabled because the insn truncates the shift count to -32 to 31,
+; so -48 gives +16 and +48 gives -16.
 (define_insn "cirrus_ashldi3"
   [(set (match_operand:DI            0 "cirrus_fp_register" "=v")
 	(ashift:DI (match_operand:DI 1 "cirrus_fp_register"  "v")
 		   (match_operand:SI 2 "register_operand"    "r")))]
-  "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_MAVERICK && TARGET_CIRRUS_DI"
+  "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_MAVERICK && TARGET_CIRRUS_DI && 0"
   "cfrshl64%?\\t%V1, %V0, %s2"
   [(set_attr "type" "farith")
    (set_attr "cirrus" "normal")]
