]> gcc.gnu.org Git - gcc.git/commitdiff
Modify all patterns which handle stores to memory to also check current_function_vara...
authorRichard Kenner <kenner@gcc.gnu.org>
Fri, 14 Jul 1995 12:05:18 +0000 (08:05 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Fri, 14 Jul 1995 12:05:18 +0000 (08:05 -0400)
Modify all patterns which handle stores to memory to also check
current_function_varargs and current_function_stdarg.  q

From-SVN: r10125

gcc/config/i960/i960.md

index 225d532433bc4ab2961cdd775f44e27c99be859f..a458aadd01f32f790175358af886637a8f601881 100644 (file)
@@ -1,5 +1,5 @@
 ;;- Machine description for Intel 80960 chip for GNU C compiler
-;;   Copyright (C) 1992 Free Software Foundation, Inc.
+;;   Copyright (C) 1992, 1995 Free Software Foundation, Inc.
 ;;   Contributed by Steven McGeady, Intel Corp.
 ;;   Additional work by Glenn Colon-Bonet, Jonathan Shapiro, Andy Wilson
 ;;   Converted to GCC 2.0 by Jim Wilson and Michael Tiemann, Cygnus Support.
 ;; the calling convention is defined so that the arg pointer when it is not
 ;; overwise being used is zero.  Thus, we can handle store zero to memory
 ;; by storing an unused arg pointer.  The arg pointer will be unused if
-;; current_function_args_size is zero.  This value of this variable is not
-;; valid until after all rtl generation is complete, including function
-;; inlining (because a function that doesn't need an arg pointer may be
-;; inlined into a function that does need an arg pointer), so we must also
-;; check that rtx_equal_function_value_matters is zero.
+;; current_function_args_size is zero and this is not a stdarg/varargs
+;; function.  This value of the former variable is not valid until after
+;; all rtl generation is complete, including function inlining (because a
+;; function that doesn't need an arg pointer may be inlined into a function
+;; that does need an arg pointer), so we must also check that
+;; rtx_equal_function_value_matters is zero.
 
 (define_insn ""
   [(set (match_operand:SI 0 "general_operand" "=d,d,d,m")
        (match_operand:SI 1 "general_operand" "dI,i,m,dJ"))]
   "(current_function_args_size == 0
+    && current_function_varargs == 0
+    && current_function_stdarg == 0
     && rtx_equal_function_value_matters == 0)
    && (register_operand (operands[0], SImode)
        || register_operand (operands[1], SImode)
   [(set (match_operand:SI 0 "general_operand" "=d,d,d,m")
        (match_operand:SI 1 "general_operand" "dI,i,m,d"))]
   "(current_function_args_size != 0
+    || current_function_varargs != 0
+    || current_function_stdarg != 0
     || rtx_equal_function_value_matters != 0)
    && (register_operand (operands[0], SImode)
        || register_operand (operands[1], SImode))"
   [(set (match_operand:HI 0 "general_operand" "=d,d,d,m")
        (match_operand:HI 1 "general_operand" "dI,i,m,dJ"))]
   "(current_function_args_size == 0
+    && current_function_varargs == 0
+    && current_function_stdarg == 0
     && rtx_equal_function_value_matters == 0)
    && (register_operand (operands[0], HImode)
        || register_operand (operands[1], HImode)
   [(set (match_operand:HI 0 "general_operand" "=d,d,d,m")
        (match_operand:HI 1 "general_operand" "dI,i,m,d"))]
   "(current_function_args_size != 0
+    || current_function_varargs != 0
+    || current_function_stdarg != 0
     || rtx_equal_function_value_matters != 0)
    && (register_operand (operands[0], HImode)
        || register_operand (operands[1], HImode))"
   [(set (match_operand:QI 0 "general_operand" "=d,d,d,m")
        (match_operand:QI 1 "general_operand" "dI,i,m,dJ"))]
   "(current_function_args_size == 0
+    && current_function_varargs == 0
+    && current_function_stdarg == 0
     && rtx_equal_function_value_matters == 0)
    && (register_operand (operands[0], QImode)
        || register_operand (operands[1], QImode)
   [(set (match_operand:QI 0 "general_operand" "=d,d,d,m")
        (match_operand:QI 1 "general_operand" "dI,i,m,d"))]
   "(current_function_args_size != 0
+    || current_function_varargs != 0
+    || current_function_stdarg != 0
     || rtx_equal_function_value_matters != 0)
    && (register_operand (operands[0], QImode)
        || register_operand (operands[1], QImode))"
   [(set (match_operand:DI 0 "general_operand" "=d,d,d,m,o")
        (match_operand:DI 1 "general_operand" "dI,i,m,d,J"))]
   "(current_function_args_size == 0
+    && current_function_varargs == 0
+    && current_function_stdarg == 0
     && rtx_equal_function_value_matters == 0)
    && (register_operand (operands[0], DImode)
        || register_operand (operands[1], DImode)
   [(set (match_operand:DI 0 "general_operand" "=d,d,d,m")
        (match_operand:DI 1 "general_operand" "dI,i,m,d"))]
   "(current_function_args_size != 0
+    || current_function_varargs != 0
+    || current_function_stdarg != 0
     || rtx_equal_function_value_matters != 0)
    && (register_operand (operands[0], DImode)
        || register_operand (operands[1], DImode))"
   [(set (match_operand:TI 0 "general_operand" "=d,d,d,m,o")
        (match_operand:TI 1 "general_operand" "dI,i,m,d,J"))]
   "(current_function_args_size == 0
+    && current_function_varargs == 0
+    && current_function_stdarg == 0
     && rtx_equal_function_value_matters == 0)
    && (register_operand (operands[0], TImode)
        || register_operand (operands[1], TImode)
   [(set (match_operand:TI 0 "general_operand" "=d,d,d,m")
        (match_operand:TI 1 "general_operand" "dI,i,m,d"))]
   "(current_function_args_size != 0
+    || current_function_varargs != 0
+    || current_function_stdarg != 0
     || rtx_equal_function_value_matters != 0)
    && (register_operand (operands[0], TImode)
        || register_operand (operands[1], TImode))"
   [(set (match_operand:DF 0 "general_operand" "=r,*f,d,d,m,o")
        (match_operand:DF 1 "fpmove_src_operand" "r,GH,F,m,d,G"))]
   "(current_function_args_size == 0
+    && current_function_varargs == 0
+    && current_function_stdarg == 0
     && rtx_equal_function_value_matters == 0)
    && (register_operand (operands[0], DFmode)
        || register_operand (operands[1], DFmode)
   [(set (match_operand:DF 0 "general_operand" "=r,*f,d,d,m")
        (match_operand:DF 1 "fpmove_src_operand" "r,GH,F,m,d"))]
   "(current_function_args_size != 0
+    || current_function_varargs != 0
+    || current_function_stdarg != 0
     || rtx_equal_function_value_matters != 0)
    && (register_operand (operands[0], DFmode)
        || register_operand (operands[1], DFmode))"
   [(set (match_operand:SF 0 "general_operand" "=r,*f,d,d,m")
        (match_operand:SF 1 "fpmove_src_operand" "r,GH,F,m,dG"))]
   "(current_function_args_size == 0
+    && current_function_varargs == 0
+    && current_function_stdarg == 0
     && rtx_equal_function_value_matters == 0)
    && (register_operand (operands[0], SFmode)
        || register_operand (operands[1], SFmode)
   [(set (match_operand:SF 0 "general_operand" "=r,*f,d,d,m")
        (match_operand:SF 1 "fpmove_src_operand" "r,GH,F,m,d"))]
   "(current_function_args_size != 0
+    || current_function_varargs != 0
+    || current_function_stdarg != 0
     || rtx_equal_function_value_matters != 0)
    && (register_operand (operands[0], SFmode)
        || register_operand (operands[1], SFmode))"
This page took 0.066045 seconds and 5 git commands to generate.