]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/config/rs6000/mpc.md
rs6000.h (processor_type): Add PPC440.
[thirdparty/gcc.git] / gcc / config / rs6000 / mpc.md
1 (define_automaton "mpc,mpcfp")
2 (define_cpu_unit "iu_mpc,mciu_mpc" "mpc")
3 (define_cpu_unit "fpu_mpc" "mpcfp")
4 (define_cpu_unit "lsu_mpc,bpu_mpc" "mpc")
5
6 ;; MPCCORE 32-bit SCIU, MCIU, LSU, FPU, BPU
7 ;; 505/801/821/823
8
9 (define_insn_reservation "mpccore-load" 2
10 (and (eq_attr "type" "load,load_ext,load_ext_u,load_ext_ux,load_ux,load_u")
11 (eq_attr "cpu" "mpccore"))
12 "lsu_mpc")
13
14 (define_insn_reservation "mpccore-store" 1
15 (and (eq_attr "type" "store,store_ux,store_u,fpstore,fpstore_ux,fpstore_u")
16 (eq_attr "cpu" "mpccore"))
17 "lsu_mpc")
18
19 (define_insn_reservation "mpccore-fpload" 2
20 (and (eq_attr "type" "fpload,fpload_ux,fpload_u")
21 (eq_attr "cpu" "mpccore"))
22 "lsu_mpc")
23
24 (define_insn_reservation "mpccore-integer" 1
25 (and (eq_attr "type" "integer")
26 (eq_attr "cpu" "mpccore"))
27 "iu_mpc")
28
29 (define_insn_reservation "mpccore-imul" 2
30 (and (eq_attr "type" "imul,imul2,imul3")
31 (eq_attr "cpu" "mpccore"))
32 "mciu_mpc")
33
34 ; Divide latency varies greatly from 2-11, use 6 as average
35 (define_insn_reservation "mpccore-idiv" 6
36 (and (eq_attr "type" "idiv")
37 (eq_attr "cpu" "mpccore"))
38 "mciu_mpc*6")
39
40 (define_insn_reservation "mpccore-compare" 3
41 (and (eq_attr "type" "cmp,compare,delayed_compare")
42 (eq_attr "cpu" "mpccore"))
43 "iu_mpc,nothing,bpu_mpc")
44
45 (define_insn_reservation "mpccore-fpcompare" 2
46 (and (eq_attr "type" "fpcompare")
47 (eq_attr "cpu" "mpccore"))
48 "fpu_mpc,bpu_mpc")
49
50 (define_insn_reservation "mpccore-fp" 4
51 (and (eq_attr "type" "fp")
52 (eq_attr "cpu" "mpccore"))
53 "fpu_mpc*2")
54
55 (define_insn_reservation "mpccore-dmul" 5
56 (and (eq_attr "type" "dmul")
57 (eq_attr "cpu" "mpccore"))
58 "fpu_mpc*5")
59
60 (define_insn_reservation "mpccore-sdiv" 10
61 (and (eq_attr "type" "sdiv")
62 (eq_attr "cpu" "mpccore"))
63 "fpu_mpc*10")
64
65 (define_insn_reservation "mpccore-ddiv" 17
66 (and (eq_attr "type" "ddiv")
67 (eq_attr "cpu" "mpccore"))
68 "fpu_mpc*17")
69
70 (define_insn_reservation "mpccore-mtjmpr" 4
71 (and (eq_attr "type" "mtjmpr")
72 (eq_attr "cpu" "mpccore"))
73 "bpu_mpc")
74
75 (define_insn_reservation "mpccore-jmpreg" 1
76 (and (eq_attr "type" "jmpreg,branch,cr_logical,delayed_cr,mfcr,mtcr")
77 (eq_attr "cpu" "mpccore"))
78 "bpu_mpc")
79