On Fri, 26 Apr 2013, Richard Biener wrote:

> The test scanning for * 4 would not be fixed with int32plus indeed (if
> int is larger than 32bits).  Using int32_t would be better than
> SImode as SImode is not guaranteed to be 32bits either.

SImode should (if it exists) always be four times QImode, even if the 
minimum addressable unit (which is QImode) is not 8 bits.  (I don't know 
whether the * 4 is supposed to be counting in QImode units or in "char", 
but generally I'd expect the middle-end / back-end to be counting in 
QImode, and support for char wider than QImode is even more bitrotten / 
less likely to work than support for QImode not being 8 bits.)

Abstractly, the existence of a particular set of machine modes wider than 
QImode should in principle be something machine-dependent (rather than 
being in machmode.def, there should be a separate .def file with those 
modes that all existing targets use).  I don't really expect that sort of 
thing to be cleaned up unless and until someone with sufficient GCC 
expertise works on a port to a non-8-bit-byte target; there are plenty of 
much easier areas to clean up the target interface (most of the existing 
target macros...).

-- 
Joseph S. Myers
jos...@codesourcery.com

Reply via email to