This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFC: Appropriate method for target-specific mode-substititutesin libgcc2


Björn Haase wrote:
#ifndef TARGET_SPECIFIC_SUBSTITUE_FOR_MODE_DF
typedef		float		DFtype		__attribute__ ((mode (DF)));
#else
typedef		float		DFtype		
               __attribute__ ((mode (TARGET_SPECIFIC_SUBSTITUE_FOR_MODE_DF)));
#endif

These libgcc2 functions really are tied to modes, not to types. So if double is SFmode, gcc will never call one of the *df* functions for it. Meanwhile, some targets that make double be SFmode also make long double be DFmode, and hence we do still need the *df* functions defined exactly as they are currently defined in order for the long double support to work. Hence it would be very wrong to redefine the *df* functions to use mode (SF) instead of mode (DF) for any target.


If this is a simple matter of not being able to compile some of the functions in libgcc2.c, one possible solution would be to avoid compiling them. You could use the trick used in arm/t-symbian, which is to put them in LIB1ASMFUNCS.

Otherwise, it isn't clear what the problem is, because libgcc2 has been using these types without apparent problem for a very long time. If there is a problem, you need to be clearer about what exactly the problem is. If the problem is one of the bigger modes, then we can add ifdefs to control when it is used.
--
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]