111
|
1 /* MIPS CPU names.
|
145
|
2 Copyright (C) 1989-2020 Free Software Foundation, Inc.
|
111
|
3
|
|
4 This file is part of GCC.
|
|
5
|
|
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)
|
|
9 any later version.
|
|
10
|
|
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.
|
|
15
|
|
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/>. */
|
|
19
|
|
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
|
|
22 ISA.
|
|
23
|
|
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
|
|
27 options correctly.
|
|
28
|
|
29 Before including this file, define a macro:
|
|
30
|
|
31 MIPS_CPU (NAME, CPU, ISA, FLAGS)
|
|
32
|
|
33 where the arguments are the fields of struct mips_cpu_info. */
|
|
34
|
|
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)
|
|
57
|
|
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)
|
|
62
|
|
63 /* MIPS II processors. */
|
|
64 MIPS_CPU ("r6000", PROCESSOR_R6000, 2, 0)
|
|
65
|
|
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)
|
|
82
|
|
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)
|
|
94
|
|
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)
|
|
100
|
|
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)
|
|
111
|
|
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)
|
|
118
|
|
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)
|
|
125
|
|
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. */
|
|
133
|
|
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)
|
|
141
|
|
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)
|
|
146
|
|
147 MIPS_CPU ("interaptiv", PROCESSOR_24KF2_1, 33, 0)
|
|
148
|
|
149 /* MIPS32 Release 5 processors. */
|
|
150 MIPS_CPU ("p5600", PROCESSOR_P5600, 36, (PTF_AVOID_BRANCHLIKELY_SPEED
|
|
151 | PTF_AVOID_IMADD))
|
|
152 MIPS_CPU ("m5100", PROCESSOR_M5100, 36, PTF_AVOID_BRANCHLIKELY_SPEED)
|
|
153 MIPS_CPU ("m5101", PROCESSOR_M5100, 36, PTF_AVOID_BRANCHLIKELY_SPEED)
|
|
154
|
|
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)
|
|
163
|
|
164 /* MIPS64 Release 2 processors. */
|
145
|
165 MIPS_CPU ("loongson3a", PROCESSOR_GS464, 65, PTF_AVOID_BRANCHLIKELY_SPEED)
|
|
166 MIPS_CPU ("gs464", PROCESSOR_GS464, 65, PTF_AVOID_BRANCHLIKELY_SPEED)
|
|
167 MIPS_CPU ("gs464e", PROCESSOR_GS464E, 65, PTF_AVOID_BRANCHLIKELY_SPEED)
|
|
168 MIPS_CPU ("gs264e", PROCESSOR_GS264E, 65, PTF_AVOID_BRANCHLIKELY_SPEED)
|
111
|
169 MIPS_CPU ("octeon", PROCESSOR_OCTEON, 65, PTF_AVOID_BRANCHLIKELY_SPEED)
|
|
170 MIPS_CPU ("octeon+", PROCESSOR_OCTEON, 65, PTF_AVOID_BRANCHLIKELY_SPEED)
|
|
171 MIPS_CPU ("octeon2", PROCESSOR_OCTEON2, 65, PTF_AVOID_BRANCHLIKELY_SPEED)
|
|
172 MIPS_CPU ("octeon3", PROCESSOR_OCTEON3, 65, PTF_AVOID_BRANCHLIKELY_SPEED)
|
|
173 MIPS_CPU ("xlp", PROCESSOR_XLP, 65, PTF_AVOID_BRANCHLIKELY_SPEED)
|
|
174
|
|
175 /* MIPS64 Release 6 processors. */
|
|
176 MIPS_CPU ("i6400", PROCESSOR_I6400, 69, 0)
|
131
|
177 MIPS_CPU ("i6500", PROCESSOR_I6400, 69, 0)
|
|
178 MIPS_CPU ("p6600", PROCESSOR_P6600, 69, 0)
|