Promoting floats to doubles?

Jim Wilson wilson@specifixinc.com
Wed May 5 22:47:00 GMT 2004


On Wed, 2004-05-05 at 02:00, Kean Johnston wrote:
> #define PROMOTE_MODE(MODE,UNSIGNEDP, TYPE) \
> #define PROMOTE_FUNCTION_ARGS
> #define PROMOTE_FOR_CALL_ONLY

PROMOTE_FOR_CALL_ONLY was removed last week by the way.

The PROMOTE_MODE stuff may not work in your case.  Currently, they are
only for integers (char/short/int/long), and they work by adding
SUBREGs.  However, SUBREGs can not be used for converting floats to
doubles and vice versa.  So the PROMOTE_MODE stuff will just lead to
trouble.  You might be able to get it working, but you will have to
rewrite the code a bit.  It might be easier to add some new hooks which
are used in the same places but generate conversions instead of adding
subregs.

It is probably easier to do this in the C front end, even if that is the
wrong place to do this.  It will be a bit more work to do this in the
middle-end.  I don't believe there are any existing hooks for this.  I
will you will. have to write some code to get this working in the
middle-end.
-- 
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com



More information about the Gcc mailing list