OSDN Git Service

config/rs6000/rs6000.c (function_arg): call to
authorfjahanian <fjahanian@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 23 Feb 2004 18:40:46 +0000 (18:40 +0000)
committerfjahanian <fjahanian@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 23 Feb 2004 18:40:46 +0000 (18:40 +0000)
rs6000_mixed_function_arg for DFmode moved to allow
normal DFmode incoming register assignment.
OKed by David Edehlson.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@78323 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/rs6000/rs6000.c

index e3f64fc..2a702bf 100644 (file)
@@ -1,3 +1,8 @@
+2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
+        * config/rs6000/rs6000.c (function_arg): call to
+       rs6000_mixed_function_arg for DFmode moved to allow
+       normal DFmode incoming register assignment.  
+
 2004-02-23  Dale Johannesen  <dalej@apple.com>
 
        * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
index df30bcb..172da41 100644 (file)
@@ -4395,7 +4395,7 @@ function_arg (CUMULATIVE_ARGS *cum, enum machine_mode mode,
         return NULL_RTX;
 
       if (TARGET_32BIT && TARGET_POWERPC64
-         && (mode == DFmode || mode == DImode || mode == BLKmode))
+         && (mode == DImode || mode == BLKmode))
        return rs6000_mixed_function_arg (cum, mode, type, align_words);
 
       if (USE_FP_FOR_ARG_P (cum, mode, type))
@@ -4410,6 +4410,10 @@ function_arg (CUMULATIVE_ARGS *cum, enum machine_mode mode,
                      || (align_words < GP_ARG_NUM_REG))))
            return gen_rtx_REG (mode, cum->fregno);
 
+          if (TARGET_32BIT && TARGET_POWERPC64
+              && mode == DFmode && cum->stdarg)
+            return rs6000_mixed_function_arg (cum, mode, type, align_words);
+
           return gen_rtx_PARALLEL (mode,
            gen_rtvec (2,
                       gen_rtx_EXPR_LIST (VOIDmode,