Index: gcc-4.2.2/gcc/config/avr32/avr32.md
===================================================================
--- gcc-4.2.2.orig/gcc/config/avr32/avr32.md	2008-09-19 14:23:34.000000000 +0200
+++ gcc-4.2.2/gcc/config/avr32/avr32.md	2008-09-19 14:30:18.000000000 +0200
@@ -803,14 +803,22 @@
 (define_insn "*movsf_internal"
   [(set (match_operand:SF 0 "nonimmediate_operand"     "=r,r,r,r,m")
 	(match_operand:SF 1 "general_operand"          "r, G,F,m,r"))]
-  "TARGET_SOFT_FLOAT
-   && (register_operand (operands[0], SFmode)
-       || register_operand (operands[1], SFmode))"
+  "(register_operand (operands[0], SFmode)
+    || register_operand (operands[1], SFmode))"
   {
     switch (which_alternative) {
       case 0:
       case 1: return "mov\t%0, %1";
-      case 2: return "mov\t%0, lo(%1)\;orh\t%0, hi(%1)";
+      case 2: 
+       {
+        HOST_WIDE_INT target_float[2];
+        real_to_target (target_float, CONST_DOUBLE_REAL_VALUE (operands[1]), SFmode);
+        if ( TARGET_V2_INSNS 
+             && avr32_hi16_immediate_operand (GEN_INT (target_float[0]), VOIDmode) )
+           return "movh\t%0, hi(%1)";
+        else
+           return "mov\t%0, lo(%1)\;orh\t%0, hi(%1)";
+       }
       case 3:
         if ( (REG_P(XEXP(operands[1], 0))
               && REGNO(XEXP(operands[1], 0)) == SP_REGNUM)
