"Yao qi" <[EMAIL PROTECTED]> writes:

> Do you mean the value of TARGET_HARD_FLOAT is *1* when option -mhard-float
> is specified according to rs6000.opt ?

Yes.  TARGET_HARD_FLOAT is defined as

#define TARGET_HARD_FLOAT ((target_flags & MASK_SOFT_FLOAT) == 0)

The -mhard-float option will clear the MASK_SOFT_FLOAT bit in
target_flags.

The default setting of the MASK_SOFT_FLOAT bit in target_flags depends
upon the default processor.

> If so, that is to say, in rs6000_gimplify_va_arg() , the condations
> statement in
> line 5734,
>    5733
>    5734   if (TARGET_HARD_FLOAT && TARGET_FPRS
>    5735       && (TYPE_MODE (type) == SFmode || TYPE_MODE (type) == DFmode
> 
> is *always* FALSE and all the float  parameters wiil be passed in GPRs
> instead of FPRs.
> Am I right?  Everyone here could verify or deny it, thanks in advance!

The condition is not always false.  The value depends on exactly how
you have configured the compiler and exactly what options you pass.

Ian

Reply via email to