diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ccfcfeeb1fce36c327d6a065d9c1833798b8d980..b9d95fa5b6e9cbbd76fb5efdfd6216bba32e3495 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
+	
+	* config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
+
 2011-07-21  Jason Merrill  <jason@redhat.com>
 
 	* system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c
index a1d0c885bd86f0e962f7c8faed44d6328796296f..4951f56e092d3194d2c00d3699fa9da5b33235e5 100644
--- a/gcc/config/avr/avr.c
+++ b/gcc/config/avr/avr.c
@@ -1629,12 +1629,18 @@ byte_immediate_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
 
 void
 final_prescan_insn (rtx insn, rtx *operand ATTRIBUTE_UNUSED,
-		    int num_operands ATTRIBUTE_UNUSED)
+                    int num_operands ATTRIBUTE_UNUSED)
 {
   if (TARGET_ALL_DEBUG)
     {
-      fprintf (asm_out_file, "/* DEBUG: cost = %d.  */\n",
-	       rtx_cost (PATTERN (insn), INSN, !optimize_size));
+      rtx set = single_set (insn);
+
+      if (set)
+        fprintf (asm_out_file, "/* DEBUG: cost = %d.  */\n",
+                 rtx_cost (SET_SRC (set), SET, optimize_insn_for_speed_p()));
+      else
+        fprintf (asm_out_file, "/* DEBUG: pattern-cost = %d.  */\n",
+                 rtx_cost (PATTERN (insn), INSN, optimize_insn_for_speed_p()));
     }
 }