GCC 4.3.4 is casting my QImode vars to SImode for libcall
Joern Rennecke
amylaar@spamcop.net
Tue Jun 15 11:17:00 GMT 2010
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.
More information about the Gcc
mailing list