*** empty log message ***
authorMichael Meissner <meissner@gcc.gnu.org>
Wed, 6 May 1992 21:33:45 +0000 (21:33 +0000)
committerMichael Meissner <meissner@gcc.gnu.org>
Wed, 6 May 1992 21:33:45 +0000 (21:33 +0000)
From-SVN: r922

gcc/config/mips/mips.c
gcc/config/mips/mips.md
gcc/config/mips/osfrose.h
gcc/config/mips/ultrix.h

index 86f35e4..9e8faa9 100644 (file)
@@ -4248,7 +4248,7 @@ function_epilogue (file, size)
        }
 
       fprintf (stderr,
-              "%-20s fp=%c leaf=%c alloca=%c setjmp=%c stack=%4ld arg=%3ld reg=%2d/%d delay=%3d/%3dL %3d/%3dJ refs=%3d/%3d/%3d\n",
+              "%-20s fp=%c leaf=%c alloca=%c setjmp=%c stack=%4ld arg=%3ld reg=%2d/%d delay=%3d/%3dL %3d/%3dJ refs=%3d/%3d/%3d",
               current_function_name,
               (frame_pointer_needed) ? 'y' : 'n',
               ((current_frame_info.mask & (1 << 31)) != 0) ? 'n' : 'y',
@@ -4260,6 +4260,14 @@ function_epilogue (file, size)
               dslots_load_total, dslots_load_filled,
               dslots_jump_total, dslots_jump_filled,
               num_refs[0], num_refs[1], num_refs[2]);
+
+      if (HALF_PIC_NUMBER_PTRS)
+       fprintf (stderr, " half-pic=%3d", HALF_PIC_NUMBER_PTRS);
+
+      if (HALF_PIC_NUMBER_REFS)
+       fprintf (stderr, " pic-ref=%3d", HALF_PIC_NUMBER_REFS);
+
+      fputc ('\n', stderr);
     }
 
   /* Reset state info for each function.  */
index d300a0a..4a49fe0 100644 (file)
                (const_string "yes")
                (const_string "no")))
 
+;; Attribute describing the processor.  This attribute must match exactly
+;; with the processor_type enumeration in mips.h.
+
 ;; Attribute describing the processor
-(define_attr "cpu" "default,r3000,r4000,r6000"
-  (const
-   (cond [(eq (symbol_ref "mips_cpu") (symbol_ref "PROCESSOR_DEFAULT")) (const_string "default")
-         (eq (symbol_ref "mips_cpu") (symbol_ref "PROCESSOR_R3000"))   (const_string "r3000")
-         (eq (symbol_ref "mips_cpu") (symbol_ref "PROCESSOR_R4000"))   (const_string "r4000")
-         (eq (symbol_ref "mips_cpu") (symbol_ref "PROCESSOR_R6000"))   (const_string "r6000")]
-        (const_string "default"))))
+;; (define_attr "cpu" "default,r3000,r6000,r4000"
+;;   (const
+;;    (cond [(eq (symbol_ref "mips_cpu") (symbol_ref "PROCESSOR_R3000"))   (const_string "r3000")
+;;           (eq (symbol_ref "mips_cpu") (symbol_ref "PROCESSOR_R4000"))   (const_string "r4000")
+;;           (eq (symbol_ref "mips_cpu") (symbol_ref "PROCESSOR_R6000"))   (const_string "r6000")]
+;;          (const_string "default"))))
+
+(define_attr "cpu" "default,r3000,r6000,r4000"
+  (const (symbol_ref "mips_cpu_attr")))
 
 ;; Attribute defining whether or not we can use the branch-likely instructions
 ;; (MIPS ISA level 2)
   (and (eq_attr "type" "load,pic") (eq_attr "cpu" "r3000"))
   2 0)
 
-(define_function_unit "memory"  1 0 (eq_attr "type" "store") 1 0)
+(define_function_unit "memory"   1 0 (eq_attr "type" "store") 1 0)
 
-(define_function_unit "fp_comp"  1 0 (eq_attr "type" "fcmp")    2 0)
+(define_function_unit "fp_comp"  1 0 (eq_attr "type" "fcmp") 2 0)
 
-(define_function_unit "transfer" 1 0 (eq_attr "type" "xfer")    2 0)
-(define_function_unit "transfer" 1 0 (eq_attr "type" "hilo")    3 0)
+(define_function_unit "transfer" 1 0 (eq_attr "type" "xfer") 2 0)
+(define_function_unit "transfer" 1 0 (eq_attr "type" "hilo") 3 0)
 
 (define_function_unit "imuldiv"  1 1
   (and (eq_attr "type" "imul") (eq_attr "cpu" "!r3000,r4000"))
   (and (eq_attr "type" "fadd") (eq_attr "cpu" "r6000"))
   3 6)
 
-(define_function_unit "fast" 1 1
+(define_function_unit "adder" 1 1
   (and (eq_attr "type" "fabs,fneg") (eq_attr "cpu" "!r3000"))
   2 4)
 
-(define_function_unit "fast" 1 1
+(define_function_unit "adder" 1 1
   (and (eq_attr "type" "fabs,fneg") (eq_attr "cpu" "r3000"))
   1 2)
 
 (define_function_unit "sqrt" 1 1 (and (eq_attr "type" "fsqrt") (eq_attr "mode" "DF")) 112 224)
 
 \f
+;; The following functional units do not use the cpu type, and use
+;; much less memory in genattrtab.c.
+
+;; (define_function_unit "memory"   1 0 (eq_attr "type" "load,pic")                            3   0)
+;; (define_function_unit "memory"   1 0 (eq_attr "type" "store")                               1   0)
+;;       
+;; (define_function_unit "fp_comp"  1 0 (eq_attr "type" "fcmp")                                2   0)
+;;       
+;; (define_function_unit "transfer" 1 0 (eq_attr "type" "xfer")                                2   0)
+;; (define_function_unit "transfer" 1 0 (eq_attr "type" "hilo")                                3   0)
+;;   
+;; (define_function_unit "imuldiv"  1 1 (eq_attr "type" "imul")                               17  34)
+;; (define_function_unit "imuldiv"  1 1 (eq_attr "type" "idiv")                               38  76)
+;;   
+;; (define_function_unit "adder"    1 1 (eq_attr "type" "fadd")                                4   8)
+;; (define_function_unit "adder"    1 1 (eq_attr "type" "fabs,fneg")                           2   4)
+;;   
+;; (define_function_unit "mult"     1 1 (and (eq_attr "type" "fmul") (eq_attr "mode" "SF"))    7  14)
+;; (define_function_unit "mult"     1 1 (and (eq_attr "type" "fmul") (eq_attr "mode" "DF"))    8  16)
+;;   
+;; (define_function_unit "divide"   1 1 (and (eq_attr "type" "fdiv") (eq_attr "mode" "SF"))   23  46)
+;; (define_function_unit "divide"   1 1 (and (eq_attr "type" "fdiv") (eq_attr "mode" "DF"))   36  72)
+;; 
+;; (define_function_unit "sqrt"     1 1 (and (eq_attr "type" "fsqrt") (eq_attr "mode" "SF"))  54 108)
+;; (define_function_unit "sqrt"     1 1 (and (eq_attr "type" "fsqrt") (eq_attr "mode" "DF")) 112 224)
+
+\f
 ;;
 ;;  ....................
 ;;
@@ -1833,8 +1865,8 @@ move\\t%0,%z4\\n\\
 }")
 
 (define_insn "movsi_internal"
-  [(set (match_operand:SI 0 "nonimmediate_operand" "=d,d,d,d,d,d,R,m,*d,*fs,*f,*f,*f,*R,*m,*x,*d")
-       (match_operand:SI 1 "general_operand" "d,S,IKL,Mnis,R,m,dJ,dJ,*fs,*d,*f,*R,*m,*f,*f,*d,*x"))]
+  [(set (match_operand:SI 0 "nonimmediate_operand" "=d,d,d,d,d,d,R,m,*d,*fz,*f,*f,*f,*R,*m,*x,*d")
+       (match_operand:SI 1 "general_operand" "d,S,IKL,Mnis,R,m,dJ,dJ,*fz,*d,*f,*R,*m,*f,*f,*d,*x"))]
   ""
   "* return mips_move_1word (operands, insn, TRUE);"
   [(set_attr "type"    "move,pic,arith,arith,load,load,store,store,xfer,xfer,move,load,load,store,store,hilo,hilo")
@@ -1850,7 +1882,7 @@ move\\t%0,%z4\\n\\
 
 (define_insn "movhi"
   [(set (match_operand:HI 0 "nonimmediate_operand" "=d,d,d,d,R,m,*d,*f,*f,*x,*d")
-       (match_operand:HI 1 "general_operand"       "d,IK,R,m,dJ,dJ,*fs,*d,*f,*d,*x"))]
+       (match_operand:HI 1 "general_operand"       "d,IK,R,m,dJ,dJ,*fz,*d,*f,*d,*x"))]
   ""
   "* return mips_move_1word (operands, insn, TRUE);"
   [(set_attr "type"    "move,arith,load,load,store,store,xfer,xfer,move,hilo,hilo")
@@ -1866,7 +1898,7 @@ move\\t%0,%z4\\n\\
 
 (define_insn "movqi"
   [(set (match_operand:QI 0 "nonimmediate_operand" "=d,d,d,d,R,m,*d,*f,*f,*x,*d")
-       (match_operand:QI 1 "general_operand"       "d,IK,R,m,dJ,dJ,*fs,*d,*f,*d,*x"))]
+       (match_operand:QI 1 "general_operand"       "d,IK,R,m,dJ,dJ,*fz,*d,*f,*d,*x"))]
   ""
   "* return mips_move_1word (operands, insn, TRUE);"
   [(set_attr "type"    "move,arith,load,load,store,store,xfer,xfer,move,hilo,hilo")
index 5dce4ac..4857d21 100644 (file)
@@ -20,7 +20,8 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #define DECSTATION
 #define OSF_OS
 
-#define HALF_PIC_DEBUG TARGET_DEBUG_B_MODE
+#define HALF_PIC_DEBUG TARGET_DEBUG_B_MODE
+#define HALF_PIC_PREFIX        "$Lp."
 
 #include "halfpic.h"
 
@@ -48,12 +49,14 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
                        %{.s:%i} %{!.s:%g.s}}}"
 
 #define CPP_SPEC "\
-%{.S:  -D__LANGUAGE_ASSEMBLY__ %{!ansi:-DLANGUAGE_ASSEMBLY} -DLANGUAGE_C -D__LANGUAGE_C__} \
-%{.cc: -D__LANGUAGE_C_PLUS_PLUS__} \
-%{.cxx:        -D__LANGUAGE_C_PLUS_PLUS__} \
-%{.C:  -D__LANGUAGE_C_PLUS_PLUS__} \
-%{.m:  -D__LANGUAGE_OBJECTIVE_C__} \
-%{!.S: -D__LANGUAGE_C__ %{!ansi:-DLANGUAGE_C}}"
+#define CPP_SPEC "\
+%{.S:  -D__LANGUAGE_ASSEMBLY__ -D__LANGUAGE_ASSEMBLY %{!ansi:-DLANGUAGE_ASSEMBLY}
+       -ULANGUAGE_C -U__LANGUAGE_C__} \
+%{.cc: -D__LANGUAGE_C_PLUS_PLUS__ -D__LANGUAGE_C_PLUS_PLUS} \
+%{.cxx:        -D__LANGUAGE_C_PLUS_PLUS__ -D__LANGUAGE_C_PLUS_PLUS} \
+%{.C:  -D__LANGUAGE_C_PLUS_PLUS__ -D__LANGUAGE_C_PLUS_PLUS} \
+%{.m:  -D__LANGUAGE_OBJECTIVE_C__ -D__LANGUAGE_OBJECTIVE_C} \
+%{!.S: -D__LANGUAGE_C__  -D__LANGUAGE_C %{!ansi:-DLANGUAGE_C}}"
 
 #define LINK_SPEC "\
 %{G*} \
index 7b6d400..40f44cd 100644 (file)
@@ -34,12 +34,12 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 %{G*}"
 
 #define CPP_SPEC "\
-%{.S:  -D__LANGUAGE_ASSEMBLY %{!ansi:-DLANGUAGE_ASSEMBLY}} \
-%{.cc: -D__LANGUAGE_C_PLUS_PLUS} \
-%{.cxx:        -D__LANGUAGE_C_PLUS_PLUS} \
-%{.C:  -D__LANGUAGE_C_PLUS_PLUS} \
-%{.m:  -D__LANGUAGE_OBJECTIVE_C} \
-%{!.S: -D__LANGUAGE_C %{!ansi:-DLANGUAGE_C}}"
+%{.S:  -D__LANGUAGE_ASSEMBLY__ -D__LANGUAGE_ASSEMBLY %{!ansi:-DLANGUAGE_ASSEMBLY}} \
+%{.cc: -D__LANGUAGE_C_PLUS_PLUS__ -D__LANGUAGE_C_PLUS_PLUS} \
+%{.cxx:        -D__LANGUAGE_C_PLUS_PLUS__ -D__LANGUAGE_C_PLUS_PLUS} \
+%{.C:  -D__LANGUAGE_C_PLUS_PLUS__ -D__LANGUAGE_C_PLUS_PLUS} \
+%{.m:  -D__LANGUAGE_OBJECTIVE_C__ -D__LANGUAGE_OBJECTIVE_C} \
+%{!.S: -D__LANGUAGE_C__  -D__LANGUAGE_C %{!ansi:-DLANGUAGE_C}}"
 
 #define LINK_SPEC "\
 %{G*} \