public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* PATCH FIX PR34210,35508 : Missing HI mode libgcc functions
@ 2008-03-23  1:27 Andy H
  2008-03-23  4:20 ` Weddington, Eric
  2008-03-23  5:16 ` Weddington, Eric
  0 siblings, 2 replies; 5+ messages in thread
From: Andy H @ 2008-03-23  1:27 UTC (permalink / raw)
  To: gcc-patches, rask; +Cc: Weddington, Eric, Anatoly Sokolov

[-- Attachment #1: Type: text/plain, Size: 850 bytes --]

The attached patch creates 16bit libgcc functions currently missing for 
AVR target.

_absvhi2 _addvhi3 _subvhi3 _mulvhi3 _negvhi2 _ffshi2 _clzhi2
_ctzhi2 _popcounthi2 _parityhi2

The method used is to compile libgcc using siditi-object.mk  to define 
LIBGCC2_UNITS_PER_WORD=2.
- as described by  /Rask Ingemann Lambertsen in PR34210

/The patch creates libgcc/config/avr/t-avr, and modfies config.host to 
include this fragment during libgcc build for avr target.

The patch resolves several testsuite FAILS caused by the missing 
functions and the following PR's

/http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34210
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35508

Bootstrapped AVR target c,c++ on i686-pc-linux and i686-pc-cygwin

PLEASE let me know if there are additional maintainers that I should  
ask for approval of this patch

Andy





/

[-- Attachment #2: libgcc16.patch --]
[-- Type: text/plain, Size: 2089 bytes --]

Index: config.host
===================================================================
--- config.host (revision 132947)
+++ config.host (working copy)
@@ -77,6 +77,9 @@
 arm*-*-*)
    cpu_type=arm
    ;;
+avr-*-*)
+   cpu_type=avr
+   ;;    
 bfin*-*)
    cpu_type=bfin
    ;;
@@ -243,6 +246,8 @@
 avr-*-rtems*)
    ;;
 avr-*-*)
+    # Make HImode functions for AVR
+    tmake_file=${cpu_type}/t-avr
    ;;
 bfin*-elf*)
         ;;
Index: config/avr/t-avr
===================================================================
--- config/avr/t-avr    (revision 0)
+++ 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
+
+
Index: config/avr/t-avr
===================================================================
--- config/avr/t-avr    (revision 0)
+++ 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
+
+

^ permalink raw reply	[flat|nested] 5+ messages in thread

* RE: PATCH FIX PR34210,35508 : Missing HI mode libgcc functions
  2008-03-23  1:27 PATCH FIX PR34210,35508 : Missing HI mode libgcc functions Andy H
@ 2008-03-23  4:20 ` Weddington, Eric
  2008-03-23  5:16 ` Weddington, Eric
  1 sibling, 0 replies; 5+ messages in thread
From: Weddington, Eric @ 2008-03-23  4:20 UTC (permalink / raw)
  To: Andy H, gcc-patches, rask; +Cc: Anatoly Sokolov, Denis Chertykov

 

> -----Original Message-----
> From: Andy H [mailto:hutchinsonandy@aim.com] 
> Sent: Saturday, March 22, 2008 6:23 PM
> To: gcc-patches@gcc.gnu.org; rask@gcc.gnu.org
> Cc: Weddington, Eric; Anatoly Sokolov
> Subject: PATCH FIX PR34210,35508 : Missing HI mode libgcc functions
> 
> The attached patch creates 16bit libgcc functions currently 
> missing for 
> AVR target.
> 
> The patch resolves several testsuite FAILS caused by the missing 
> functions and the following PR's
> 
> /http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34210
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35508
> 
> Bootstrapped AVR target c,c++ on i686-pc-linux and i686-pc-cygwin
> 
> PLEASE let me know if there are additional maintainers that I should  
> ask for approval of this patch

Hi Andy,

Thanks for doing this. Don't forget your ChangeLog entry.

Anatoly, Denis, can you start taking a look at Andy's patches so we can
get his many bug fixes committed?

Thanks,
Eric Weddington

^ permalink raw reply	[flat|nested] 5+ messages in thread

* RE: PATCH FIX PR34210,35508 : Missing HI mode libgcc functions
  2008-03-23  1:27 PATCH FIX PR34210,35508 : Missing HI mode libgcc functions Andy H
  2008-03-23  4:20 ` Weddington, Eric
@ 2008-03-23  5:16 ` Weddington, Eric
  2008-03-23  7:05   ` Andy H
  1 sibling, 1 reply; 5+ messages in thread
From: Weddington, Eric @ 2008-03-23  5:16 UTC (permalink / raw)
  To: Andy H, gcc-patches, rask; +Cc: Anatoly Sokolov

 

> -----Original Message-----
> From: Andy H [mailto:hutchinsonandy@aim.com] 
> Sent: Saturday, March 22, 2008 6:23 PM
> To: gcc-patches@gcc.gnu.org; rask@gcc.gnu.org
> Cc: Weddington, Eric; Anatoly Sokolov
> Subject: PATCH FIX PR34210,35508 : Missing HI mode libgcc functions
> 
> The attached patch creates 16bit libgcc functions currently 
> missing for 
> AVR target.
> 

Hi Andy,

A couple of problems with your patch:
- It is trying to patch config.host, but the patch was not done from the
top level directory. This leaves it open for ambiguity as there is a
config.host in /libgcc and /gcc.
- The patch is attempting to create config/avr/t-avr twice. Again this
patch was not created from the top-level directory, so I can only assume
you meant libgcc/config/avr/t-avr.

Could you generate the patch from the top-level directory, and make sure
there are no duplicates?

Thanks,
Eric Weddington

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: PATCH FIX PR34210,35508 : Missing HI mode libgcc functions
  2008-03-23  5:16 ` Weddington, Eric
@ 2008-03-23  7:05   ` Andy H
  2008-03-30 19:38     ` [PING] " Andy H
  0 siblings, 1 reply; 5+ messages in thread
From: Andy H @ 2008-03-23  7:05 UTC (permalink / raw)
  To: Weddington, Eric, gcc-patches; +Cc: rask

[-- Attachment #1: Type: text/plain, Size: 419 bytes --]

Thanks Eric

The duplication seems to be a bug in Tortoise SVN.

I edited out the second copy and now it is referenced from TOP directory.

Change log entry below, but Rask can take credit for the clever part!

2008-03-22   Andy Hutchinson <hutchinsonandy@aim.com>

    PR target/34210, 35508
    * config.host (avr-*-*): Add avr cpu_type and avr tmake_file.
    * config/t-avr: Build 16bit libgcc functions.



Andy



[-- Attachment #2: libgcc16fx.patch --]
[-- Type: text/plain, Size: 1299 bytes --]

Index: libgcc/config.host
===================================================================
--- libgcc/config.host  (revision 132947)
+++ libgcc/config.host  (working copy)
@@ -77,6 +77,9 @@
 arm*-*-*)
    cpu_type=arm
    ;;
+avr-*-*)
+   cpu_type=avr
+   ;;    
 bfin*-*)
    cpu_type=bfin
    ;;
@@ -243,6 +246,8 @@
 avr-*-rtems*)
    ;;
 avr-*-*)
+    # Make HImode functions for AVR
+    tmake_file=${cpu_type}/t-avr
    ;;
 bfin*-elf*)
         ;;
Index: libgcc/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
+
+

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PING] PATCH FIX PR34210,35508 : Missing HI mode libgcc functions
  2008-03-23  7:05   ` Andy H
@ 2008-03-30 19:38     ` Andy H
  0 siblings, 0 replies; 5+ messages in thread
From: Andy H @ 2008-03-30 19:38 UTC (permalink / raw)
  To: gcc-patches, rguenther; +Cc: Weddington, Eric, rask, ian

The following config.host patch posted on 3/23/2008 has not yet been 
reviewed:

FIX PR34210,35508 : Missing HI mode libgcc functions
http://gcc.gnu.org/ml/gcc-patches/2008-03/msg01350.html

Is this ok for mainline?

regards

Andy

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2008-03-30 17:46 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-03-23  1:27 PATCH FIX PR34210,35508 : Missing HI mode libgcc functions Andy H
2008-03-23  4:20 ` Weddington, Eric
2008-03-23  5:16 ` Weddington, Eric
2008-03-23  7:05   ` Andy H
2008-03-30 19:38     ` [PING] " Andy H

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).