On Tue, Jun 15, 2010 at 9:17 AM, Paulo J. Matos <pocma...@gmail.com> wrote: > On Mon, Jun 14, 2010 at 8:56 PM, Joseph S. Myers > <jos...@codesourcery.com> wrote: >> >> Every hardcoded reference to a mode other than QImode in the >> target-independent compiler is suspicious and needs investigating if you >> are doing such a port. In this case, the SImode references in >> expand_float are likely the problem. >> > > Thanks for the tip Joseph, I will look into it. >
The code in expand_float like you said seems to be the one causing the problem. if (GET_MODE_SIZE (GET_MODE (from)) < GET_MODE_SIZE (SImode)) from = convert_to_mode (SImode, from, unsignedp); I can't really see a reason why if the from mode has smaller size than SImode than it has to be converted. Simply removing these lines actually works. However I can imagine that there _might_ be archs where the non-integer modes are smaller than QImode and then there would be a problem so the correct solution would be to change it to: if (GET_MODE_SIZE (GET_MODE (from)) < GET_MODE_SIZE (QImode)) from = convert_to_mode (QImode, from, unsignedp); Cheers, -- PMatos