Commit ddd8ab48 by Michael Meissner

*** empty log message ***

From-SVN: r922
parent 4a392643
...@@ -4248,7 +4248,7 @@ function_epilogue (file, size) ...@@ -4248,7 +4248,7 @@ function_epilogue (file, size)
} }
fprintf (stderr, 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, current_function_name,
(frame_pointer_needed) ? 'y' : 'n', (frame_pointer_needed) ? 'y' : 'n',
((current_frame_info.mask & (1 << 31)) != 0) ? 'n' : 'y', ((current_frame_info.mask & (1 << 31)) != 0) ? 'n' : 'y',
...@@ -4260,6 +4260,14 @@ function_epilogue (file, size) ...@@ -4260,6 +4260,14 @@ function_epilogue (file, size)
dslots_load_total, dslots_load_filled, dslots_load_total, dslots_load_filled,
dslots_jump_total, dslots_jump_filled, dslots_jump_total, dslots_jump_filled,
num_refs[0], num_refs[1], num_refs[2]); 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. */ /* Reset state info for each function. */
......
...@@ -69,14 +69,19 @@ ...@@ -69,14 +69,19 @@
(const_string "yes") (const_string "yes")
(const_string "no"))) (const_string "no")))
;; Attribute describing the processor. This attribute must match exactly
;; with the processor_type enumeration in mips.h.
;; Attribute describing the processor ;; Attribute describing the processor
(define_attr "cpu" "default,r3000,r4000,r6000" ;; (define_attr "cpu" "default,r3000,r6000,r4000"
(const ;; (const
(cond [(eq (symbol_ref "mips_cpu") (symbol_ref "PROCESSOR_DEFAULT")) (const_string "default") ;; (cond [(eq (symbol_ref "mips_cpu") (symbol_ref "PROCESSOR_R3000")) (const_string "r3000")
(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_R4000")) (const_string "r4000") ;; (eq (symbol_ref "mips_cpu") (symbol_ref "PROCESSOR_R6000")) (const_string "r6000")]
(eq (symbol_ref "mips_cpu") (symbol_ref "PROCESSOR_R6000")) (const_string "r6000")] ;; (const_string "default"))))
(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 ;; Attribute defining whether or not we can use the branch-likely instructions
;; (MIPS ISA level 2) ;; (MIPS ISA level 2)
...@@ -131,12 +136,12 @@ ...@@ -131,12 +136,12 @@
(and (eq_attr "type" "load,pic") (eq_attr "cpu" "r3000")) (and (eq_attr "type" "load,pic") (eq_attr "cpu" "r3000"))
2 0) 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" "xfer") 2 0)
(define_function_unit "transfer" 1 0 (eq_attr "type" "hilo") 3 0) (define_function_unit "transfer" 1 0 (eq_attr "type" "hilo") 3 0)
(define_function_unit "imuldiv" 1 1 (define_function_unit "imuldiv" 1 1
(and (eq_attr "type" "imul") (eq_attr "cpu" "!r3000,r4000")) (and (eq_attr "type" "imul") (eq_attr "cpu" "!r3000,r4000"))
...@@ -174,11 +179,11 @@ ...@@ -174,11 +179,11 @@
(and (eq_attr "type" "fadd") (eq_attr "cpu" "r6000")) (and (eq_attr "type" "fadd") (eq_attr "cpu" "r6000"))
3 6) 3 6)
(define_function_unit "fast" 1 1 (define_function_unit "adder" 1 1
(and (eq_attr "type" "fabs,fneg") (eq_attr "cpu" "!r3000")) (and (eq_attr "type" "fabs,fneg") (eq_attr "cpu" "!r3000"))
2 4) 2 4)
(define_function_unit "fast" 1 1 (define_function_unit "adder" 1 1
(and (eq_attr "type" "fabs,fneg") (eq_attr "cpu" "r3000")) (and (eq_attr "type" "fabs,fneg") (eq_attr "cpu" "r3000"))
1 2) 1 2)
...@@ -234,6 +239,33 @@ ...@@ -234,6 +239,33 @@
(define_function_unit "sqrt" 1 1 (and (eq_attr "type" "fsqrt") (eq_attr "mode" "DF")) 112 224) (define_function_unit "sqrt" 1 1 (and (eq_attr "type" "fsqrt") (eq_attr "mode" "DF")) 112 224)
;; 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)
;; ;;
;; .................... ;; ....................
;; ;;
...@@ -1833,8 +1865,8 @@ move\\t%0,%z4\\n\\ ...@@ -1833,8 +1865,8 @@ move\\t%0,%z4\\n\\
}") }")
(define_insn "movsi_internal" (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") [(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,*fs,*d,*f,*R,*m,*f,*f,*d,*x"))] (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);" "* 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") [(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\\ ...@@ -1850,7 +1882,7 @@ move\\t%0,%z4\\n\\
(define_insn "movhi" (define_insn "movhi"
[(set (match_operand:HI 0 "nonimmediate_operand" "=d,d,d,d,R,m,*d,*f,*f,*x,*d") [(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);" "* return mips_move_1word (operands, insn, TRUE);"
[(set_attr "type" "move,arith,load,load,store,store,xfer,xfer,move,hilo,hilo") [(set_attr "type" "move,arith,load,load,store,store,xfer,xfer,move,hilo,hilo")
...@@ -1866,7 +1898,7 @@ move\\t%0,%z4\\n\\ ...@@ -1866,7 +1898,7 @@ move\\t%0,%z4\\n\\
(define_insn "movqi" (define_insn "movqi"
[(set (match_operand:QI 0 "nonimmediate_operand" "=d,d,d,d,R,m,*d,*f,*f,*x,*d") [(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);" "* return mips_move_1word (operands, insn, TRUE);"
[(set_attr "type" "move,arith,load,load,store,store,xfer,xfer,move,hilo,hilo") [(set_attr "type" "move,arith,load,load,store,store,xfer,xfer,move,hilo,hilo")
......
...@@ -20,7 +20,8 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ ...@@ -20,7 +20,8 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#define DECSTATION #define DECSTATION
#define OSF_OS #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" #include "halfpic.h"
...@@ -48,12 +49,14 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ ...@@ -48,12 +49,14 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
%{.s:%i} %{!.s:%g.s}}}" %{.s:%i} %{!.s:%g.s}}}"
#define CPP_SPEC "\ #define CPP_SPEC "\
%{.S: -D__LANGUAGE_ASSEMBLY__ %{!ansi:-DLANGUAGE_ASSEMBLY} -DLANGUAGE_C -D__LANGUAGE_C__} \ #define CPP_SPEC "\
%{.cc: -D__LANGUAGE_C_PLUS_PLUS__} \ %{.S: -D__LANGUAGE_ASSEMBLY__ -D__LANGUAGE_ASSEMBLY %{!ansi:-DLANGUAGE_ASSEMBLY}
%{.cxx: -D__LANGUAGE_C_PLUS_PLUS__} \ -ULANGUAGE_C -U__LANGUAGE_C__} \
%{.C: -D__LANGUAGE_C_PLUS_PLUS__} \ %{.cc: -D__LANGUAGE_C_PLUS_PLUS__ -D__LANGUAGE_C_PLUS_PLUS} \
%{.m: -D__LANGUAGE_OBJECTIVE_C__} \ %{.cxx: -D__LANGUAGE_C_PLUS_PLUS__ -D__LANGUAGE_C_PLUS_PLUS} \
%{!.S: -D__LANGUAGE_C__ %{!ansi:-DLANGUAGE_C}}" %{.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 "\ #define LINK_SPEC "\
%{G*} \ %{G*} \
......
...@@ -34,12 +34,12 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ ...@@ -34,12 +34,12 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
%{G*}" %{G*}"
#define CPP_SPEC "\ #define CPP_SPEC "\
%{.S: -D__LANGUAGE_ASSEMBLY %{!ansi:-DLANGUAGE_ASSEMBLY}} \ %{.S: -D__LANGUAGE_ASSEMBLY__ -D__LANGUAGE_ASSEMBLY %{!ansi:-DLANGUAGE_ASSEMBLY}} \
%{.cc: -D__LANGUAGE_C_PLUS_PLUS} \ %{.cc: -D__LANGUAGE_C_PLUS_PLUS__ -D__LANGUAGE_C_PLUS_PLUS} \
%{.cxx: -D__LANGUAGE_C_PLUS_PLUS} \ %{.cxx: -D__LANGUAGE_C_PLUS_PLUS__ -D__LANGUAGE_C_PLUS_PLUS} \
%{.C: -D__LANGUAGE_C_PLUS_PLUS} \ %{.C: -D__LANGUAGE_C_PLUS_PLUS__ -D__LANGUAGE_C_PLUS_PLUS} \
%{.m: -D__LANGUAGE_OBJECTIVE_C} \ %{.m: -D__LANGUAGE_OBJECTIVE_C__ -D__LANGUAGE_OBJECTIVE_C} \
%{!.S: -D__LANGUAGE_C %{!ansi:-DLANGUAGE_C}}" %{!.S: -D__LANGUAGE_C__ -D__LANGUAGE_C %{!ansi:-DLANGUAGE_C}}"
#define LINK_SPEC "\ #define LINK_SPEC "\
%{G*} \ %{G*} \
......
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