2 Copyright (C
) 1989-2018 Free Software Foundation
, Inc.
4 This file is part of GCC.
6 GCC is free software
; you can redistribute it and
/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation
; either version
3, or (at your option
)
11 GCC is distributed in the hope that it will be useful
,
12 but WITHOUT ANY WARRANTY
; without even the implied warranty of
13 MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with GCC
; see the file COPYING3. If not see
18 <http
://www.gnu.org
/licenses
/>.
*/
20 /* A table describing all the processors GCC knows about. The first
21 mention of an ISA level is taken as the canonical name for that
24 To ease comparison
, please keep this table in the same order
25 as GAS
's mips_cpu_info_table. Please also make sure that
26 MIPS_ISA_LEVEL_SPEC and MIPS_ARCH_FLOAT_SPEC handle all -march
29 Before including this file, define a macro:
31 MIPS_CPU (NAME, CPU, ISA, FLAGS)
33 where the arguments are the fields of struct mips_cpu_info. */
35 /* Entries for generic ISAs. */
36 MIPS_CPU ("mips1", PROCESSOR_R3000, 1, 0)
37 MIPS_CPU ("mips2", PROCESSOR_R6000, 2, PTF_AVOID_BRANCHLIKELY_SIZE)
38 MIPS_CPU ("mips3", PROCESSOR_R4000, 3, PTF_AVOID_BRANCHLIKELY_SIZE)
39 MIPS_CPU ("mips4", PROCESSOR_R10000, 4, PTF_AVOID_BRANCHLIKELY_SIZE)
40 /* Prefer not to use branch-likely instructions for generic MIPS32rX
41 and MIPS64rX code. The instructions were officially deprecated
42 in revisions 2 and earlier, but revision 3 is likely to downgrade
43 that to a recommendation to avoid the instructions in code that
44 isn't tuned to a specific processor.
*/
45 MIPS_CPU ("mips32", PROCESSOR_4KC
, 32, PTF_AVOID_BRANCHLIKELY_ALWAYS
)
46 MIPS_CPU ("mips32r2", PROCESSOR_74KF2_1
, 33, PTF_AVOID_BRANCHLIKELY_ALWAYS
)
47 /* mips32r3 is micromips hense why it uses the M4K processor.
*/
48 MIPS_CPU ("mips32r3", PROCESSOR_M4K
, 34, PTF_AVOID_BRANCHLIKELY_ALWAYS
)
49 MIPS_CPU ("mips32r5", PROCESSOR_P5600
, 36, PTF_AVOID_BRANCHLIKELY_ALWAYS
)
50 MIPS_CPU ("mips32r6", PROCESSOR_I6400
, 37, 0)
51 MIPS_CPU ("mips64", PROCESSOR_5KC
, 64, PTF_AVOID_BRANCHLIKELY_ALWAYS
)
52 /* ??? For now just tune the generic MIPS64r2 and above for
5KC as well.
*/
53 MIPS_CPU ("mips64r2", PROCESSOR_5KC
, 65, PTF_AVOID_BRANCHLIKELY_ALWAYS
)
54 MIPS_CPU ("mips64r3", PROCESSOR_5KC
, 66, PTF_AVOID_BRANCHLIKELY_ALWAYS
)
55 MIPS_CPU ("mips64r5", PROCESSOR_5KC
, 68, PTF_AVOID_BRANCHLIKELY_ALWAYS
)
56 MIPS_CPU ("mips64r6", PROCESSOR_I6400
, 69, 0)
58 /* MIPS I processors.
*/
59 MIPS_CPU ("r3000", PROCESSOR_R3000
, 1, 0)
60 MIPS_CPU ("r2000", PROCESSOR_R3000
, 1, 0)
61 MIPS_CPU ("r3900", PROCESSOR_R3900
, 1, 0)
63 /* MIPS II processors.
*/
64 MIPS_CPU ("r6000", PROCESSOR_R6000
, 2, 0)
66 /* MIPS III processors.
*/
67 MIPS_CPU ("r4000", PROCESSOR_R4000
, 3, 0)
68 MIPS_CPU ("vr4100", PROCESSOR_R4100
, 3, 0)
69 MIPS_CPU ("vr4111", PROCESSOR_R4111
, 3, 0)
70 MIPS_CPU ("vr4120", PROCESSOR_R4120
, 3, 0)
71 MIPS_CPU ("vr4130", PROCESSOR_R4130
, 3, 0)
72 MIPS_CPU ("vr4300", PROCESSOR_R4300
, 3, 0)
73 MIPS_CPU ("r4400", PROCESSOR_R4000
, 3, 0)
74 MIPS_CPU ("r4600", PROCESSOR_R4600
, 3, 0)
75 MIPS_CPU ("orion", PROCESSOR_R4600
, 3, 0)
76 MIPS_CPU ("r4650", PROCESSOR_R4650
, 3, 0)
77 MIPS_CPU ("r4700", PROCESSOR_R4700
, 3, 0)
78 MIPS_CPU ("r5900", PROCESSOR_R5900
, 3, 0)
79 /* ST Loongson
2E
/2F processors.
*/
80 MIPS_CPU ("loongson2e", PROCESSOR_LOONGSON_2E
, 3, PTF_AVOID_BRANCHLIKELY_SPEED
)
81 MIPS_CPU ("loongson2f", PROCESSOR_LOONGSON_2F
, 3, PTF_AVOID_BRANCHLIKELY_SPEED
)
83 /* MIPS IV processors.
*/
84 MIPS_CPU ("r8000", PROCESSOR_R8000
, 4, 0)
85 MIPS_CPU ("r10000", PROCESSOR_R10000
, 4, 0)
86 MIPS_CPU ("r12000", PROCESSOR_R10000
, 4, 0)
87 MIPS_CPU ("r14000", PROCESSOR_R10000
, 4, 0)
88 MIPS_CPU ("r16000", PROCESSOR_R10000
, 4, 0)
89 MIPS_CPU ("vr5000", PROCESSOR_R5000
, 4, 0)
90 MIPS_CPU ("vr5400", PROCESSOR_R5400
, 4, 0)
91 MIPS_CPU ("vr5500", PROCESSOR_R5500
, 4, PTF_AVOID_BRANCHLIKELY_SPEED
)
92 MIPS_CPU ("rm7000", PROCESSOR_R7000
, 4, 0)
93 MIPS_CPU ("rm9000", PROCESSOR_R9000
, 4, 0)
95 /* MIPS32 processors.
*/
96 MIPS_CPU ("4kc", PROCESSOR_4KC
, 32, 0)
97 MIPS_CPU ("4km", PROCESSOR_4KC
, 32, 0)
98 MIPS_CPU ("4kp", PROCESSOR_4KP
, 32, 0)
99 MIPS_CPU ("4ksc", PROCESSOR_4KC
, 32, 0)
101 /* MIPS32 Release
2 processors.
*/
102 MIPS_CPU ("m4k", PROCESSOR_M4K
, 33, 0)
103 MIPS_CPU ("m14kc", PROCESSOR_M4K
, 33, 0)
104 MIPS_CPU ("m14k", PROCESSOR_M4K
, 33, 0)
105 MIPS_CPU ("m14ke", PROCESSOR_M4K
, 33, 0)
106 MIPS_CPU ("m14kec", PROCESSOR_M4K
, 33, 0)
107 MIPS_CPU ("4kec", PROCESSOR_4KC
, 33, 0)
108 MIPS_CPU ("4kem", PROCESSOR_4KC
, 33, 0)
109 MIPS_CPU ("4kep", PROCESSOR_4KP
, 33, 0)
110 MIPS_CPU ("4ksd", PROCESSOR_4KC
, 33, 0)
112 MIPS_CPU ("24kc", PROCESSOR_24KC
, 33, 0)
113 MIPS_CPU ("24kf2_1", PROCESSOR_24KF2_1
, 33, 0)
114 MIPS_CPU ("24kf", PROCESSOR_24KF2_1
, 33, 0)
115 MIPS_CPU ("24kf1_1", PROCESSOR_24KF1_1
, 33, 0)
116 MIPS_CPU ("24kfx", PROCESSOR_24KF1_1
, 33, 0)
117 MIPS_CPU ("24kx", PROCESSOR_24KF1_1
, 33, 0)
119 MIPS_CPU ("24kec", PROCESSOR_24KC
, 33, 0) /* 24K with DSP.
*/
120 MIPS_CPU ("24kef2_1", PROCESSOR_24KF2_1
, 33, 0)
121 MIPS_CPU ("24kef", PROCESSOR_24KF2_1
, 33, 0)
122 MIPS_CPU ("24kef1_1", PROCESSOR_24KF1_1
, 33, 0)
123 MIPS_CPU ("24kefx", PROCESSOR_24KF1_1
, 33, 0)
124 MIPS_CPU ("24kex", PROCESSOR_24KF1_1
, 33, 0)
126 MIPS_CPU ("34kc", PROCESSOR_24KC
, 33, 0) /* 34K with MT
/DSP.
*/
127 MIPS_CPU ("34kf2_1", PROCESSOR_24KF2_1
, 33, 0)
128 MIPS_CPU ("34kf", PROCESSOR_24KF2_1
, 33, 0)
129 MIPS_CPU ("34kf1_1", PROCESSOR_24KF1_1
, 33, 0)
130 MIPS_CPU ("34kfx", PROCESSOR_24KF1_1
, 33, 0)
131 MIPS_CPU ("34kx", PROCESSOR_24KF1_1
, 33, 0)
132 MIPS_CPU ("34kn", PROCESSOR_24KC
, 33, 0) /* 34K with MT but no DSP.
*/
134 MIPS_CPU ("74kc", PROCESSOR_74KC
, 33, PTF_AVOID_IMADD
) /* 74K with DSPr2.
*/
135 MIPS_CPU ("74kf2_1", PROCESSOR_74KF2_1
, 33, PTF_AVOID_IMADD
)
136 MIPS_CPU ("74kf", PROCESSOR_74KF2_1
, 33, PTF_AVOID_IMADD
)
137 MIPS_CPU ("74kf1_1", PROCESSOR_74KF1_1
, 33, PTF_AVOID_IMADD
)
138 MIPS_CPU ("74kfx", PROCESSOR_74KF1_1
, 33, PTF_AVOID_IMADD
)
139 MIPS_CPU ("74kx", PROCESSOR_74KF1_1
, 33, PTF_AVOID_IMADD
)
140 MIPS_CPU ("74kf3_2", PROCESSOR_74KF3_2
, 33, PTF_AVOID_IMADD
)
142 MIPS_CPU ("1004kc", PROCESSOR_24KC
, 33, 0) /* 1004K with MT
/DSP.
*/
143 MIPS_CPU ("1004kf2_1", PROCESSOR_24KF2_1
, 33, 0)
144 MIPS_CPU ("1004kf", PROCESSOR_24KF2_1
, 33, 0)
145 MIPS_CPU ("1004kf1_1", PROCESSOR_24KF1_1
, 33, 0)
147 MIPS_CPU ("interaptiv", PROCESSOR_24KF2_1
, 33, 0)
149 /* MIPS32 Release
5 processors.
*/
150 MIPS_CPU ("p5600", PROCESSOR_P5600
, 36, (PTF_AVOID_BRANCHLIKELY_SPEED
152 MIPS_CPU ("m5100", PROCESSOR_M5100
, 36, PTF_AVOID_BRANCHLIKELY_SPEED
)
153 MIPS_CPU ("m5101", PROCESSOR_M5100
, 36, PTF_AVOID_BRANCHLIKELY_SPEED
)
155 /* MIPS64 processors.
*/
156 MIPS_CPU ("5kc", PROCESSOR_5KC
, 64, 0)
157 MIPS_CPU ("5kf", PROCESSOR_5KF
, 64, 0)
158 MIPS_CPU ("20kc", PROCESSOR_20KC
, 64, PTF_AVOID_BRANCHLIKELY_SPEED
)
159 MIPS_CPU ("sb1", PROCESSOR_SB1
, 64, PTF_AVOID_BRANCHLIKELY_SPEED
)
160 MIPS_CPU ("sb1a", PROCESSOR_SB1A
, 64, PTF_AVOID_BRANCHLIKELY_SPEED
)
161 MIPS_CPU ("sr71000", PROCESSOR_SR71000
, 64, PTF_AVOID_BRANCHLIKELY_SPEED
)
162 MIPS_CPU ("xlr", PROCESSOR_XLR
, 64, PTF_AVOID_BRANCHLIKELY_SPEED
)
164 /* MIPS64 Release
2 processors.
*/
165 MIPS_CPU ("loongson3a", PROCESSOR_LOONGSON_3A
, 65, PTF_AVOID_BRANCHLIKELY_SPEED
)
166 MIPS_CPU ("octeon", PROCESSOR_OCTEON
, 65, PTF_AVOID_BRANCHLIKELY_SPEED
)
167 MIPS_CPU ("octeon+", PROCESSOR_OCTEON
, 65, PTF_AVOID_BRANCHLIKELY_SPEED
)
168 MIPS_CPU ("octeon2", PROCESSOR_OCTEON2
, 65, PTF_AVOID_BRANCHLIKELY_SPEED
)
169 MIPS_CPU ("octeon3", PROCESSOR_OCTEON3
, 65, PTF_AVOID_BRANCHLIKELY_SPEED
)
170 MIPS_CPU ("xlp", PROCESSOR_XLP
, 65, PTF_AVOID_BRANCHLIKELY_SPEED
)
172 /* MIPS64 Release
6 processors.
*/
173 MIPS_CPU ("i6400", PROCESSOR_I6400
, 69, 0)