]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
*** empty log message ***
authorRichard Kenner <kenner@gcc.gnu.org>
Fri, 29 May 1992 20:14:01 +0000 (16:14 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Fri, 29 May 1992 20:14:01 +0000 (16:14 -0400)
From-SVN: r1125

gcc/config/romp/romp.h
gcc/config/rs6000/rs6000.h
gcc/explow.c

index 0c06624092bad884304ec7353282a7c2da4782fc..6ec7eee23aedcb4924b1a793fa0fb7e4325eb8b1 100644 (file)
@@ -638,8 +638,9 @@ struct rt_cargs {int gregs, fregs; };
 
 #define FUNCTION_ARG(CUM, MODE, TYPE, NAMED)                           \
   (! (NAMED) ? 0                                                       \
-  : USE_FP_REG(MODE,CUM) ? gen_rtx(REG, (MODE),(CUM.fregs) + 17)       \
-  : (CUM).gregs < 4 ? gen_rtx(REG, (MODE), 2 + (CUM).gregs) : 0)
+   : ((TYPE) != 0 && TREE_CODE (TYPE_CODE (TYPE)) != INTEGER_CST)      \
+   : USE_FP_REG(MODE,CUM) ? gen_rtx(REG, (MODE),(CUM.fregs) + 17)      \
+   : (CUM).gregs < 4 ? gen_rtx(REG, (MODE), 2 + (CUM).gregs) : 0)
 
 /* For an arg passed partly in registers and partly in memory,
    this is the number of registers used.
index 7cda5d2fb712146fbb6257e5cd2dabe428d8ece2..5ab7340c28d16f8dfdf29b09de506ce2e7851a67 100644 (file)
@@ -714,7 +714,8 @@ struct rs6000_args {int words, fregno, nargs_prototype; };
 
 #define FUNCTION_ARG(CUM, MODE, TYPE, NAMED)                           \
   (! (NAMED) ? 0                                                       \
-  : USE_FP_FOR_ARG_P (CUM, MODE, TYPE)                                 \
+   : ((TYPE) != 0 && TREE_CODE (TYPE_CODE (TYPE)) != INTEGER_CST)      \
+   : USE_FP_FOR_ARG_P (CUM, MODE, TYPE)                                        \
    ? ((CUM).nargs_prototype > 0                                                \
       ? gen_rtx (REG, MODE, (CUM).fregno)                              \
       : ((CUM).words < 8                                               \
index ecb6477c45aa1ceba3e50a4c1aa83c5cd96f36f5..c0d69720d1a9183b215b5172c6b44e13a9465e97 100644 (file)
@@ -751,18 +751,21 @@ emit_stack_save (save_level, psave, after)
        abort ();
     }
 
+  if (sa != 0)
+    sa = validize_mem (sa);
+
   if (after)
     {
       rtx seq;
 
       start_sequence ();
-      emit_insn (fcn (validize_mem (sa), stack_pointer_rtx));
+      emit_insn (fcn (sa, stack_pointer_rtx));
       seq = gen_sequence ();
       end_sequence ();
       emit_insn_after (seq, after);
     }
   else
-    emit_insn (fcn (validize_mem (sa), stack_pointer_rtx));
+    emit_insn (fcn (sa, stack_pointer_rtx));
 }
 
 /* Restore the stack pointer for the purpose in SAVE_LEVEL.  SA is the save
@@ -804,18 +807,21 @@ emit_stack_restore (save_level, sa, after)
 #endif
     }
 
+  if (sa != 0)
+    sa = validize_mem (sa);
+
   if (after)
     {
       rtx seq;
 
       start_sequence ();
-      emit_insn (fcn (stack_pointer_rtx, validize_mem (sa)));
+      emit_insn (fcn (stack_pointer_rtx, sa));
       seq = gen_sequence ();
       end_sequence ();
       emit_insn_after (seq, after);
     }
   else
-    emit_insn (fcn (stack_pointer_rtx, validize_mem (sa)));
+    emit_insn (fcn (stack_pointer_rtx, sa));
 }
 \f
 /* Return an rtx representing the address of an area of memory dynamically