diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bd540df9bba8150d972bc417c5827bca351b6dae..7263ff84f185d082e617477a206611cbb30433ad 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2009-12-30  Andreas Schwab  <schwab@linux-m68k.org>
+
+	PR target/42516
+	* config/m68k/m68k.md (rotlsi_16): New insn.
+
 2009-12-30  Joseph Myers  <joseph@codesourcery.com>
 
 	PR c/42439
@@ -8,7 +13,7 @@
 2009-12-30  Ira Rosen  <irar@il.ibm.com>
 
 	PR tree-optimization/41956
-	* tree-vect-slp.c (vect_supported_load_permutation_p): Add check that 
+	* tree-vect-slp.c (vect_supported_load_permutation_p): Add check that
 	the load indices differ.
 
 2009-12-30  Uros Bizjak  <ubizjak@gmail.com>
diff --git a/gcc/config/m68k/m68k.md b/gcc/config/m68k/m68k.md
index 037bb372cc996b38386012be0a6ec3a4b98b2de9..f89037f2e967d18f1f25415e25b6810a3f2347e4 100644
--- a/gcc/config/m68k/m68k.md
+++ b/gcc/config/m68k/m68k.md
@@ -1,6 +1,6 @@
 ;;- Machine description for GNU compiler, Motorola 68000 Version
 ;;  Copyright (C) 1987, 1988, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001,
-;;  2002, 2003, 2004, 2005, 2006, 2007, 2008
+;;  2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
 ;;  Free Software Foundation, Inc.
 
 ;; This file is part of GCC.
@@ -5368,6 +5368,14 @@
 
 ;; rotate instructions
 
+(define_insn "rotlsi_16"
+  [(set (match_operand:SI 0 "register_operand" "=d")
+	(rotate:SI (match_operand:SI 1 "register_operand" "0")
+		   (const_int 16)))]
+  ""
+  "swap %0"
+  [(set_attr "type" "shift")])
+
 (define_insn "rotlsi3"
   [(set (match_operand:SI 0 "register_operand" "=d")
 	(rotate:SI (match_operand:SI 1 "register_operand" "0")