summaryrefslogtreecommitdiff
path: root/devel/avr-gcc/files/patch-bug34210-35508
blob: 0ca6774b1735a3b31ac50311d73926fa680dde95 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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
+
+