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: GCC 4.3.4 is casting my QImode vars to SImode for libcall


Quoting "Joseph S. Myers" <joseph@codesourcery.com>:

For targets with 8-bit bytes and 32-bit registers (and without hardware
floating point), there is probably no point in having most conversion
functions to/from QImode or HImode separate from those to/from SImode, as
they likely wouldn't be any more efficient so would just make libgcc
larger or add unnecessary aliases.

I think it is also a reflection of an 'all the world is (at least) 32 bit' attitude - in part supported by the GNU coding standard as it was then aimed at making an easily maintainable workstation / server operating system. I.e. the C "int" type was assumed to be 32 bit. And gcc stood for 'GNU C compiler' - and C has type promotion rules that mean you don't need to convert floating point from/to integer types narrower than int.

Thus, it doesn't make sense to force extension to an integer mode wider than
an int.
Ports where int is smaller than SImode are few, and if you really want
an expansion, you can always force it with a define_expand.


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