Fix for bugs #34210, #35508.

===================================================================
--- libgcc/config.host.orig	2008-01-25 13:49:04.000000000 -0700
+++ libgcc/config.host	2008-03-22 22:04:25.965018200 -0600
@@ -77,6 +77,9 @@ strongarm*-*-*)
 arm*-*-*)
 	cpu_type=arm
 	;;
+avr-*-*)
+	cpu_type=avr
+	;;
 bfin*-*)
 	cpu_type=bfin
 	;;
@@ -243,6 +246,8 @@ arm*-*-kaos*)
 avr-*-rtems*)
 	;;
 avr-*-*)
+	# Make HImode functions for AVR
+	tmake_file=${cpu_type}/t-avr
 	;;
 bfin*-elf*)
         ;;
Index: config/avr/t-avr
===================================================================
--- libgcc/config/avr/t-avr    (revision 0)
+++ libgcc/config/avr/t-avr    (revision 0)
@@ -0,0 +1,19 @@
+# Extra 16-bit integer functions.
+intfuncs16 = _absvXX2 _addvXX3 _subvXX3 _mulvXX3 _negvXX2 _ffsXX2 _clzXX2 \
+             _ctzXX2 _popcountXX2 _parityXX2
+hiintfuncs16 = $(subst XX,hi,$(intfuncs16))
+siintfuncs16 = $(subst XX,si,$(intfuncs16))
+
+iter-items := $(hiintfuncs16)
+iter-labels := $(siintfuncs16)
+iter-sizes := $(patsubst %,2,$(siintfuncs16)) $(patsubst %,2,$(hiintfuncs16))
+
+
+include $(srcdir)/empty.mk $(patsubst %,$(srcdir)/siditi-object.mk,$(iter-items))
+libgcc-objects += $(patsubst %,%$(objext),$(hiintfuncs16))
+
+ifeq ($(enable_shared),yes)
+libgcc-s-objects += $(patsubst %,%_s$(objext),$(hiintfuncs16))
+endif
+
+
