Commit 56f4cc04 by David Edelsohn Committed by David Edelsohn

rs6000.c (USE_FP_FOR_ARG_P): Revert TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.

        * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Revert
        TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
        (function_arg_advance): Condition on TARGET_DOUBLE_FLOAT,
        TARGET_SINGLE_FLOAT.
        Revert SCALAR_FLOAT_MODE_P condition.
        (function_arg): Condition on TARGET_DOUBLE_FLOAT,
        TARGET_SINGLE_FLOAT.
        (rs6000_function_value): Revert TARGET_DOUBLE_FLOAT,
        TARGET_SINGLE_FLOAT.

From-SVN: r140838
parent 414f00e9
2008-10-02 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Revert
TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
(function_arg_advance): Condition on TARGET_DOUBLE_FLOAT,
TARGET_SINGLE_FLOAT.
Revert SCALAR_FLOAT_MODE_P condition.
(function_arg): Condition on TARGET_DOUBLE_FLOAT,
TARGET_SINGLE_FLOAT.
(rs6000_function_value): Revert TARGET_DOUBLE_FLOAT,
TARGET_SINGLE_FLOAT.
2008-10-02 Daniel Jacobowitz <dan@codesourcery.com> 2008-10-02 Daniel Jacobowitz <dan@codesourcery.com>
* builtins.c (fold_builtin_pow): Check for 0 ** NEGATIVE. * builtins.c (fold_builtin_pow): Check for 0 ** NEGATIVE.
......
...@@ -5249,9 +5249,7 @@ rs6000_emit_move (rtx dest, rtx source, enum machine_mode mode) ...@@ -5249,9 +5249,7 @@ rs6000_emit_move (rtx dest, rtx source, enum machine_mode mode)
#define USE_FP_FOR_ARG_P(CUM,MODE,TYPE) \ #define USE_FP_FOR_ARG_P(CUM,MODE,TYPE) \
(SCALAR_FLOAT_MODE_P (MODE) \ (SCALAR_FLOAT_MODE_P (MODE) \
&& (CUM)->fregno <= FP_ARG_MAX_REG \ && (CUM)->fregno <= FP_ARG_MAX_REG \
&& TARGET_HARD_FLOAT && TARGET_FPRS \ && TARGET_HARD_FLOAT && TARGET_FPRS)
&& ((TARGET_DOUBLE_FLOAT && (MODE) == DFmode)\
|| (TARGET_SINGLE_FLOAT && (MODE) == SFmode)))
/* Nonzero if we can use an AltiVec register to pass this arg. */ /* Nonzero if we can use an AltiVec register to pass this arg. */
#define USE_ALTIVEC_FOR_ARG_P(CUM,MODE,TYPE,NAMED) \ #define USE_ALTIVEC_FOR_ARG_P(CUM,MODE,TYPE,NAMED) \
...@@ -5728,9 +5726,10 @@ function_arg_advance (CUMULATIVE_ARGS *cum, enum machine_mode mode, ...@@ -5728,9 +5726,10 @@ function_arg_advance (CUMULATIVE_ARGS *cum, enum machine_mode mode,
else if (DEFAULT_ABI == ABI_V4) else if (DEFAULT_ABI == ABI_V4)
{ {
if (TARGET_HARD_FLOAT && TARGET_FPRS if (TARGET_HARD_FLOAT && TARGET_FPRS
&& (mode == SFmode || mode == DFmode && ((TARGET_SINGLE_FLOAT && mode == SFmode)
|| mode == SDmode || mode == DDmode || mode == TDmode || (TARGET_DOUBLE_FLOAT && mode == DFmode)
|| (mode == TFmode && !TARGET_IEEEQUAD))) || (mode == TFmode && !TARGET_IEEEQUAD)
|| mode == SDmode || mode == DDmode || mode == TDmode))
{ {
/* _Decimal128 must use an even/odd register pair. This assumes /* _Decimal128 must use an even/odd register pair. This assumes
that the register number is odd when fregno is odd. */ that the register number is odd when fregno is odd. */
...@@ -5796,9 +5795,7 @@ function_arg_advance (CUMULATIVE_ARGS *cum, enum machine_mode mode, ...@@ -5796,9 +5795,7 @@ function_arg_advance (CUMULATIVE_ARGS *cum, enum machine_mode mode,
cum->words = align_words + n_words; cum->words = align_words + n_words;
if (SCALAR_FLOAT_MODE_P (mode) if (SCALAR_FLOAT_MODE_P (mode)
&& TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_HARD_FLOAT && TARGET_FPRS)
&& ((TARGET_DOUBLE_FLOAT && mode == DFmode)
|| (TARGET_SINGLE_FLOAT && mode == SFmode)))
{ {
/* _Decimal128 must be passed in an even/odd float register pair. /* _Decimal128 must be passed in an even/odd float register pair.
This assumes that the register number is odd when fregno is This assumes that the register number is odd when fregno is
...@@ -6292,7 +6289,8 @@ function_arg (CUMULATIVE_ARGS *cum, enum machine_mode mode, ...@@ -6292,7 +6289,8 @@ function_arg (CUMULATIVE_ARGS *cum, enum machine_mode mode,
else if (abi == ABI_V4) else if (abi == ABI_V4)
{ {
if (TARGET_HARD_FLOAT && TARGET_FPRS if (TARGET_HARD_FLOAT && TARGET_FPRS
&& (mode == SFmode || mode == DFmode && ((TARGET_SINGLE_FLOAT && mode == SFmode)
|| (TARGET_DOUBLE_FLOAT && mode == DFmode)
|| (mode == TFmode && !TARGET_IEEEQUAD) || (mode == TFmode && !TARGET_IEEEQUAD)
|| mode == SDmode || mode == DDmode || mode == TDmode)) || mode == SDmode || mode == DDmode || mode == TDmode))
{ {
...@@ -22522,10 +22520,7 @@ rs6000_function_value (const_tree valtype, const_tree func ATTRIBUTE_UNUSED) ...@@ -22522,10 +22520,7 @@ rs6000_function_value (const_tree valtype, const_tree func ATTRIBUTE_UNUSED)
if (DECIMAL_FLOAT_MODE_P (mode) && TARGET_HARD_FLOAT && TARGET_FPRS) if (DECIMAL_FLOAT_MODE_P (mode) && TARGET_HARD_FLOAT && TARGET_FPRS)
/* _Decimal128 must use an even/odd register pair. */ /* _Decimal128 must use an even/odd register pair. */
regno = (mode == TDmode) ? FP_ARG_RETURN + 1 : FP_ARG_RETURN; regno = (mode == TDmode) ? FP_ARG_RETURN + 1 : FP_ARG_RETURN;
else if (SCALAR_FLOAT_TYPE_P (valtype) && TARGET_FPRS else if (SCALAR_FLOAT_TYPE_P (valtype) && TARGET_HARD_FLOAT && TARGET_FPRS)
&& (TARGET_HARD_FLOAT
&& ((TARGET_SINGLE_FLOAT && mode == SFmode)
|| TARGET_DOUBLE_FLOAT)))
regno = FP_ARG_RETURN; regno = FP_ARG_RETURN;
else if (TREE_CODE (valtype) == COMPLEX_TYPE else if (TREE_CODE (valtype) == COMPLEX_TYPE
&& targetm.calls.split_complex_arg) && targetm.calls.split_complex_arg)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment