aboutsummaryrefslogtreecommitdiff
path: root/libgcc
diff options
context:
space:
mode:
authorAndy Hutchinson <hutchinsonandy@aim.com>2008-04-07 23:15:35 +0000
committerAndy Hutchinson <hutchinsonandy@gcc.gnu.org>2008-04-07 23:15:35 +0000
commit47583040f760ccfa6948622033a4835c8b747c5a (patch)
tree7d29825db664e80cfd1115e6b8f86fd735169d0d /libgcc
parent06407e30fd47563dabeaa37e033fd99e8bc8181c (diff)
downloadgcc-47583040f760ccfa6948622033a4835c8b747c5a.zip
gcc-47583040f760ccfa6948622033a4835c8b747c5a.tar.gz
gcc-47583040f760ccfa6948622033a4835c8b747c5a.tar.bz2
PR target/34210 PR target/35508 * config.host (avr-*-*): Add avr cpu_type and avr tmake_file. * config/t-avr: New file. Build 16bit libgcc functions.
From-SVN: r133993
Diffstat (limited to 'libgcc')
-rw-r--r--libgcc/ChangeLog7
-rw-r--r--libgcc/config.host5
-rw-r--r--libgcc/config/avr/t-avr19
3 files changed, 31 insertions, 0 deletions
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index 589f44b..ad0bf65 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,10 @@
+2008-04-07 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ PR target/34210
+ PR target/35508
+ * config.host (avr-*-*): Add avr cpu_type and avr tmake_file.
+ * config/t-avr: New file. Build 16bit libgcc functions.
+
2008-03-02 Jakub Jelinek <jakub@redhat.com>
PR target/35401
diff --git a/libgcc/config.host b/libgcc/config.host
index 9496842..d695b44 100644
--- a/libgcc/config.host
+++ b/libgcc/config.host
@@ -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*)
;;
diff --git a/libgcc/config/avr/t-avr b/libgcc/config/avr/t-avr
new file mode 100644
index 0000000..ee57072
--- /dev/null
+++ b/libgcc/config/avr/t-avr
@@ -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
+
+