On Tue, Mar 30, 2010 at 2:29 PM, Joseph S. Myers
<jos...@codesourcery.com> wrote:
> No, HFmode only exists if you specifically define it to exist for a
> target.  Unless you really know what you are doing, you should not define
> it until you have ordinary float (SFmode) working.  If HFmode calls are
> generated without having defined it as a target-specific mode, something
> is wrong you need to resolve.
>
> The basic unit for machine modes is QImode, meaning one byte -
> BITS_PER_UNIT bits (8 bits unless you know exactly what you are doing and
> are prepared to fix many broken and bit-rotten cases in
> machine-independent code).  HImode and HFmode are modes of 2*BITS_PER_UNIT
> bits.  SImode and SFmode are modes of 4*BITS_PER_UNIT bits.  So presuming
> BITS_PER_UNIT is 8, a 32-bit float should be SFmode; a 16-bit integer
> value should be HImode (for any target with 8-bit bytes, whatever the word
> size).
>

Hello Joseph, let me add something to my last email.
From your email I get the feeling that you can explicitly enable the
HFmode, how can I check if this is being done?

On a surprising note, I decided to try and compile it with
FLOAT_TYPE_SIZE with 64 bits, therefore a float should not be SFmode
and the floatunsihf shouldn't be generated anymore. I was wrong, it is
still generated.

Where are these function calls generated in gcc? (I would expect it to
be during the expand pass but have no idea of where exactly)

-- 
PMatos

Reply via email to