summaryrefslogtreecommitdiff
path: root/libgcc
diff options
context:
space:
mode:
authorhutchinsonandy <hutchinsonandy@138bc75d-0d04-0410-961f-82ee72b054a4>2008-04-07 23:15:35 +0000
committerhutchinsonandy <hutchinsonandy@138bc75d-0d04-0410-961f-82ee72b054a4>2008-04-07 23:15:35 +0000
commit38dd5584b50fd4f0177e1d4fa0047e355f259abe (patch)
tree7d29825db664e80cfd1115e6b8f86fd735169d0d /libgcc
parent29ab6ecd227a591d9bd0cdeb4ee2044e2046ed1b (diff)
downloadgcc-38dd5584b50fd4f0177e1d4fa0047e355f259abe.tar.gz
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133993 138bc75d-0d04-0410-961f-82ee72b054a4
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 589f44b5369..ad0bf65f4ed 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 9496842f9bb..d695b44182d 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 00000000000..ee570724171
--- /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
+
+