Commit b5674962 by Richard Sandiford Committed by Eric Christopher

3000.md: Improve description.

2004-06-30  Richard Sandiford  <rsandifo@redhat.com>
	    Eric Christopher  <echristo@redhat.com>

	* config/mips/3000.md: Improve description.

From-SVN: r83917
parent 74fe2f96
2004-06-30 Richard Sandiford <rsandifo@redhat.com>
Eric Christopher <echristo@redhat.com>
* config/mips/3000.md: Improve description.
2004-06-30 Paul Brook <paul@codesourcery.com> 2004-06-30 Paul Brook <paul@codesourcery.com>
* config/arm/cirrus.md (cirrus_arm_movdi, cirrus_movsf_hard_insn, * config/arm/cirrus.md (cirrus_arm_movdi, cirrus_movsf_hard_insn,
......
...@@ -2,68 +2,77 @@ ...@@ -2,68 +2,77 @@
;; This is a special pipeline - this is also the default schedule and ;; This is a special pipeline - this is also the default schedule and
;; so we need to schedule instructions that may not exist on the r2k/r3k. ;; so we need to schedule instructions that may not exist on the r2k/r3k.
;; Generic processor description that assumes that the only latencies are for (define_automaton "r3k_alu,r3k_imuldiv")
;; hazards or delay slots, otherwise everything is assumed to issue and execute
;; in one cycle.
(define_automaton "r3k")
(define_cpu_unit "r3k_alu" "r3k") (define_cpu_unit "r3k_alu" "r3k_alu")
(define_cpu_unit "r3k_imuldiv" "r3k_imuldiv")
(define_insn_reservation "r3k_generic_alu" 1 (define_insn_reservation "r3k_generic" 1
(and (eq_attr "cpu" "r3000") (and (eq_attr "cpu" "r3000")
(eq_attr "type" "unknown,prefetch,prefetchx,condmove,mthilo,const,arith,shift,slt,clz,trap,fmove,fadd,fmadd,fabs,fneg,fcvt,fsqrt,frsqrt,multi,nop")) (eq_attr "type" "unknown,prefetch,prefetchx,condmove,const,arith,
shift,slt,clz,trap,multi,nop"))
"r3k_alu") "r3k_alu")
(define_insn_reservation "r3k_load_alu" 2 (define_insn_reservation "r3k_load" 2
(and (eq_attr "cpu" "r3000") (and (eq_attr "cpu" "r3000")
(eq_attr "type" "load, fpload, fpidxload, xfer")) (eq_attr "type" "load,fpload,fpidxload,xfer"))
"r3k_alu*2") "r3k_alu")
(define_insn_reservation "r3k_call_alu" 2 (define_insn_reservation "r3k_store" 1
(and (eq_attr "cpu" "r3000") (and (eq_attr "cpu" "r3000")
(eq_attr "type" "branch,jump,call")) (eq_attr "type" "store,fpstore,fpidxstore"))
"r3k_alu*2") "r3k_alu")
(define_insn_reservation "r3k_hilo_alu" 3 (define_insn_reservation "r3k_branch" 1
(and (eq_attr "cpu" "r3000") (and (eq_attr "cpu" "r3000")
(eq_attr "type" "mfhilo")) (eq_attr "type" "branch,jump,call"))
"r3k_alu*3") "r3k_alu")
(define_insn_reservation "r3k_fcmp_alu" 2 (define_insn_reservation "r3k_hilo" 1
(and (eq_attr "cpu" "r3000") (and (eq_attr "cpu" "r3000")
(eq_attr "type" "fcmp, fadd")) (eq_attr "type" "mfhilo,mthilo"))
"r3k_alu*2") "r3k_imuldiv*3")
(define_insn_reservation "r3k_imul_alu" 12 (define_insn_reservation "r3k_imul" 12
(and (eq_attr "cpu" "r3000") (and (eq_attr "cpu" "r3000")
(eq_attr "type" "imul, imadd")) (eq_attr "type" "imul,imadd"))
"r3k_alu*12") "r3k_imuldiv*12")
(define_insn_reservation "r3k_idiv_alu" 35 (define_insn_reservation "r3k_idiv" 35
(and (eq_attr "cpu" "r3000") (and (eq_attr "cpu" "r3000")
(eq_attr "type" "idiv")) (eq_attr "type" "idiv"))
"r3k_alu*35") "r3k_imuldiv*35")
(define_insn_reservation "r3k_fmove" 1
(and (eq_attr "cpu" "r3000")
(eq_attr "type" "fabs,fneg,fmove,fcvt"))
"r3k_alu")
(define_insn_reservation "r3k_fmul_single_alu" 4 (define_insn_reservation "r3k_fadd" 2
(and (eq_attr "cpu" "r3000") (and (eq_attr "cpu" "r3000")
(and (eq_attr "type" "fmul") (eq_attr "type" "fcmp,fadd"))
"r3k_alu")
(define_insn_reservation "r3k_fmul_single" 4
(and (eq_attr "cpu" "r3000")
(and (eq_attr "type" "fmul,fmadd")
(eq_attr "mode" "SF"))) (eq_attr "mode" "SF")))
"r3k_alu*4") "r3k_alu")
(define_insn_reservation "r3k_fmul_double_alu" 5 (define_insn_reservation "r3k_fmul_double" 5
(and (eq_attr "cpu" "r3000") (and (eq_attr "cpu" "r3000")
(and (eq_attr "type" "fmul") (and (eq_attr "type" "fmul,fmadd")
(eq_attr "mode" "DF"))) (eq_attr "mode" "DF")))
"r3k_alu*5") "r3k_alu")
(define_insn_reservation "r3k_fdiv_single_alu" 12 (define_insn_reservation "r3k_fdiv_single" 12
(and (eq_attr "cpu" "r3000") (and (eq_attr "cpu" "r3000")
(and (eq_attr "type" "fdiv") (and (eq_attr "type" "fdiv,fsqrt,frsqrt")
(eq_attr "mode" "SF"))) (eq_attr "mode" "SF")))
"r3k_alu*12") "r3k_alu")
(define_insn_reservation "r3k_fdiv_double_alu" 19 (define_insn_reservation "r3k_fdiv_double" 19
(and (eq_attr "cpu" "r3000") (and (eq_attr "cpu" "r3000")
(and (eq_attr "type" "fdiv") (and (eq_attr "type" "fdiv,fsqrt,frsqrt")
(eq_attr "mode" "DF"))) (eq_attr "mode" "DF")))
"r3k_alu*19") "r3k_alu")
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