2 Copyright (C
) 1989, 1990, 1991, 1993, 1994, 1995, 1996, 1997, 1998,
3 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
5 Free Software Foundation
, Inc.
7 This file is part of GCC.
9 GCC is free software
; you can redistribute it and
/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation
; either version
3, or (at your option
)
14 GCC is distributed in the hope that it will be useful
,
15 but WITHOUT ANY WARRANTY
; without even the implied warranty of
16 MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License
20 along with GCC
; see the file COPYING3. If not see
21 <http
://www.gnu.org
/licenses
/>.
*/
23 /* A table describing all the processors GCC knows about. The first
24 mention of an ISA level is taken as the canonical name for that
27 To ease comparison
, please keep this table in the same order
28 as GAS
's mips_cpu_info_table. Please also make sure that
29 MIPS_ISA_LEVEL_SPEC and MIPS_ARCH_FLOAT_SPEC handle all -march
32 Before including this file, define a macro:
34 MIPS_CPU (NAME, CPU, ISA, FLAGS)
36 where the arguments are the fields of struct mips_cpu_info. */
38 /* Entries for generic ISAs. */
39 MIPS_CPU ("mips1", PROCESSOR_R3000, 1, 0)
40 MIPS_CPU ("mips2", PROCESSOR_R6000, 2, 0)
41 MIPS_CPU ("mips3", PROCESSOR_R4000, 3, 0)
42 MIPS_CPU ("mips4", PROCESSOR_R8000, 4, 0)
43 /* Prefer not to use branch-likely instructions for generic MIPS32rX
44 and MIPS64rX code. The instructions were officially deprecated
45 in revisions 2 and earlier, but revision 3 is likely to downgrade
46 that to a recommendation to avoid the instructions in code that
47 isn't tuned to a specific processor.
*/
48 MIPS_CPU ("mips32", PROCESSOR_4KC
, 32, PTF_AVOID_BRANCHLIKELY
)
49 MIPS_CPU ("mips32r2", PROCESSOR_M4K
, 33, PTF_AVOID_BRANCHLIKELY
)
50 MIPS_CPU ("mips64", PROCESSOR_5KC
, 64, PTF_AVOID_BRANCHLIKELY
)
51 /* ??? For now just tune the generic MIPS64r2 for
5KC as well.
*/
52 MIPS_CPU ("mips64r2", PROCESSOR_5KC
, 65, PTF_AVOID_BRANCHLIKELY
)
54 /* MIPS I processors.
*/
55 MIPS_CPU ("r3000", PROCESSOR_R3000
, 1, 0)
56 MIPS_CPU ("r2000", PROCESSOR_R3000
, 1, 0)
57 MIPS_CPU ("r3900", PROCESSOR_R3900
, 1, 0)
59 /* MIPS II processors.
*/
60 MIPS_CPU ("r6000", PROCESSOR_R6000
, 2, 0)
62 /* MIPS III processors.
*/
63 MIPS_CPU ("r4000", PROCESSOR_R4000
, 3, 0)
64 MIPS_CPU ("vr4100", PROCESSOR_R4100
, 3, 0)
65 MIPS_CPU ("vr4111", PROCESSOR_R4111
, 3, 0)
66 MIPS_CPU ("vr4120", PROCESSOR_R4120
, 3, 0)
67 MIPS_CPU ("vr4130", PROCESSOR_R4130
, 3, 0)
68 MIPS_CPU ("vr4300", PROCESSOR_R4300
, 3, 0)
69 MIPS_CPU ("r4400", PROCESSOR_R4000
, 3, 0)
70 MIPS_CPU ("r4600", PROCESSOR_R4600
, 3, 0)
71 MIPS_CPU ("orion", PROCESSOR_R4600
, 3, 0)
72 MIPS_CPU ("r4650", PROCESSOR_R4650
, 3, 0)
73 MIPS_CPU ("r4700", PROCESSOR_R4700
, 3, 0)
74 /* ST Loongson
2E
/2F processors.
*/
75 MIPS_CPU ("loongson2e", PROCESSOR_LOONGSON_2E
, 3, PTF_AVOID_BRANCHLIKELY
)
76 MIPS_CPU ("loongson2f", PROCESSOR_LOONGSON_2F
, 3, PTF_AVOID_BRANCHLIKELY
)
78 /* MIPS IV processors.
*/
79 MIPS_CPU ("r8000", PROCESSOR_R8000
, 4, 0)
80 MIPS_CPU ("r10000", PROCESSOR_R10000
, 4, 0)
81 MIPS_CPU ("r12000", PROCESSOR_R10000
, 4, 0)
82 MIPS_CPU ("r14000", PROCESSOR_R10000
, 4, 0)
83 MIPS_CPU ("r16000", PROCESSOR_R10000
, 4, 0)
84 MIPS_CPU ("vr5000", PROCESSOR_R5000
, 4, 0)
85 MIPS_CPU ("vr5400", PROCESSOR_R5400
, 4, 0)
86 MIPS_CPU ("vr5500", PROCESSOR_R5500
, 4, PTF_AVOID_BRANCHLIKELY
)
87 MIPS_CPU ("rm7000", PROCESSOR_R7000
, 4, 0)
88 MIPS_CPU ("rm9000", PROCESSOR_R9000
, 4, 0)
90 /* MIPS32 processors.
*/
91 MIPS_CPU ("4kc", PROCESSOR_4KC
, 32, 0)
92 MIPS_CPU ("4km", PROCESSOR_4KC
, 32, 0)
93 MIPS_CPU ("4kp", PROCESSOR_4KP
, 32, 0)
94 MIPS_CPU ("4ksc", PROCESSOR_4KC
, 32, 0)
96 /* MIPS32 Release
2 processors.
*/
97 MIPS_CPU ("m4k", PROCESSOR_M4K
, 33, 0)
98 MIPS_CPU ("4kec", PROCESSOR_4KC
, 33, 0)
99 MIPS_CPU ("4kem", PROCESSOR_4KC
, 33, 0)
100 MIPS_CPU ("4kep", PROCESSOR_4KP
, 33, 0)
101 MIPS_CPU ("4ksd", PROCESSOR_4KC
, 33, 0)
103 MIPS_CPU ("24kc", PROCESSOR_24KC
, 33, 0)
104 MIPS_CPU ("24kf2_1", PROCESSOR_24KF2_1
, 33, 0)
105 MIPS_CPU ("24kf", PROCESSOR_24KF2_1
, 33, 0)
106 MIPS_CPU ("24kf1_1", PROCESSOR_24KF1_1
, 33, 0)
107 MIPS_CPU ("24kfx", PROCESSOR_24KF1_1
, 33, 0)
108 MIPS_CPU ("24kx", PROCESSOR_24KF1_1
, 33, 0)
110 MIPS_CPU ("24kec", PROCESSOR_24KC
, 33, 0) /* 24K with DSP.
*/
111 MIPS_CPU ("24kef2_1", PROCESSOR_24KF2_1
, 33, 0)
112 MIPS_CPU ("24kef", PROCESSOR_24KF2_1
, 33, 0)
113 MIPS_CPU ("24kef1_1", PROCESSOR_24KF1_1
, 33, 0)
114 MIPS_CPU ("24kefx", PROCESSOR_24KF1_1
, 33, 0)
115 MIPS_CPU ("24kex", PROCESSOR_24KF1_1
, 33, 0)
117 MIPS_CPU ("34kc", PROCESSOR_24KC
, 33, 0) /* 34K with MT
/DSP.
*/
118 MIPS_CPU ("34kf2_1", PROCESSOR_24KF2_1
, 33, 0)
119 MIPS_CPU ("34kf", PROCESSOR_24KF2_1
, 33, 0)
120 MIPS_CPU ("34kf1_1", PROCESSOR_24KF1_1
, 33, 0)
121 MIPS_CPU ("34kfx", PROCESSOR_24KF1_1
, 33, 0)
122 MIPS_CPU ("34kx", PROCESSOR_24KF1_1
, 33, 0)
123 MIPS_CPU ("34kn", PROCESSOR_24KC
, 33, 0) /* 34K with MT but no DSP.
*/
125 MIPS_CPU ("74kc", PROCESSOR_74KC
, 33, 0) /* 74K with DSPr2.
*/
126 MIPS_CPU ("74kf2_1", PROCESSOR_74KF2_1
, 33, 0)
127 MIPS_CPU ("74kf", PROCESSOR_74KF2_1
, 33, 0)
128 MIPS_CPU ("74kf1_1", PROCESSOR_74KF1_1
, 33, 0)
129 MIPS_CPU ("74kfx", PROCESSOR_74KF1_1
, 33, 0)
130 MIPS_CPU ("74kx", PROCESSOR_74KF1_1
, 33, 0)
131 MIPS_CPU ("74kf3_2", PROCESSOR_74KF3_2
, 33, 0)
133 MIPS_CPU ("1004kc", PROCESSOR_24KC
, 33, 0) /* 1004K with MT
/DSP.
*/
134 MIPS_CPU ("1004kf2_1", PROCESSOR_24KF2_1
, 33, 0)
135 MIPS_CPU ("1004kf", PROCESSOR_24KF2_1
, 33, 0)
136 MIPS_CPU ("1004kf1_1", PROCESSOR_24KF1_1
, 33, 0)
138 /* MIPS64 processors.
*/
139 MIPS_CPU ("5kc", PROCESSOR_5KC
, 64, 0)
140 MIPS_CPU ("5kf", PROCESSOR_5KF
, 64, 0)
141 MIPS_CPU ("20kc", PROCESSOR_20KC
, 64, PTF_AVOID_BRANCHLIKELY
)
142 MIPS_CPU ("sb1", PROCESSOR_SB1
, 64, PTF_AVOID_BRANCHLIKELY
)
143 MIPS_CPU ("sb1a", PROCESSOR_SB1A
, 64, PTF_AVOID_BRANCHLIKELY
)
144 MIPS_CPU ("sr71000", PROCESSOR_SR71000
, 64, PTF_AVOID_BRANCHLIKELY
)
145 MIPS_CPU ("xlr", PROCESSOR_XLR
, 64, PTF_AVOID_BRANCHLIKELY
)
146 MIPS_CPU ("loongson3a", PROCESSOR_LOONGSON_3A
, 64, PTF_AVOID_BRANCHLIKELY
)
148 /* MIPS64 Release
2 processors.
*/
149 MIPS_CPU ("octeon", PROCESSOR_OCTEON
, 65, PTF_AVOID_BRANCHLIKELY
)
150 MIPS_CPU ("octeon+", PROCESSOR_OCTEON
, 65, PTF_AVOID_BRANCHLIKELY
)
151 MIPS_CPU ("octeon2", PROCESSOR_OCTEON2
, 65, PTF_AVOID_BRANCHLIKELY
)
152 MIPS_CPU ("xlp", PROCESSOR_XLP
, 65, PTF_AVOID_BRANCHLIKELY
)