This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Promoting floats to doubles?
Thinking about this some more, I am starting to think that Joseph is
right. floorf is a C99 function, so we can't change its prototype, thus
we need an ABI change rather than a C front end change.
Yup, thats where I am at.
I'm having a spot of bother trying to figure out where to do it
though. I changed PROMOTE_MODE to be:
#define PROMOTE_MODE(MODE,UNSIGNEDP, TYPE) \
do { \
if (((MODE) == HImode && TARGET_PROMOTE_HI_REGS) \
|| (MODE) == QImode && TARGET_PROMOTE_QI_REGS)) \
(MODE) = SImode; \
else if (((MODE) == SFmode)) \
(MODE) = DFmode; \
} while (0)
and added:
#define PROMOTE_FUNCTION_ARGS
#define PROMOTE_FOR_CALL_ONLY
Unfortunately when I compile things this way I get an ICE in
expand_call, at calls.c:3131. Clearly then, this isnt the right
place. I've read quite a bit of gdbint.info and I cant find what
may be the right place to do this sort of thing. I just dont know
the internals well enough so I will pause for advice from you
or Joseph.
Kean