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: 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


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