El lun, 22 sept 2025 a las 4:55, YunQiang Su (<[email protected]>) escribió: > > David Guillen Fandos <[email protected]> 于2025年9月20日周六 00:48写道: > > > > The MIPS Allegrex CPU is based on MIPS2 with some additional MIPS32r2 > > instructions and a few novel ones. Support for this CPU was added as of > > binutils 2.41. > > > > gcc/ChangeLog: > > > > * config/mips/mips-cpus.def (MIPS_CPU): Added a new CPU. > > * config/mips/mips-tables.opt: Regenerated table. > > * config/mips/mips.cc: Added cost table for the new CPU. > > * config/mips/mips.h (TARGET_ALLEGREX): Defined a new macro. > > (TUNE_ALLEGREX): Defined a new macro. > > (ISA_HAS_CONDMOVE): Added Allegrex CPU to the list. > > (ISA_HAS_LDC1_SDC1): Exclude Allegrex from the list. > > (ISA_HAS_COND_TRAP): Exclude Allegrex from the list. > > (ISA_HAS_COND_TRAPI): Exclude Allegrex from the list. > > (ISA_HAS_CLZ_CLO): Added Allegrex CPU to the list. > > (ISA_HAS_ROR): Added Allegrex CPU to the list. > > (ISA_HAS_WSBH): Added Allegrex CPU to the list. > > (ISA_HAS_SEB_SEH): Added Allegrex CPU to the list. > > (ISA_HAS_EXT_INS): Added Allegrex CPU to the list. > > (ISA_HAS_XFER_DELAY): Exclude Allegrex from the list. > > (ISA_HAS_HILO_INTERLOCKS): Added Allegrex CPU to the list. > > * config/mips/mips.md: Added Allegrex CPU as a new processor. > > * doc/invoke.texi: Documented Allegrex as a new arch > > > > Signed-off-by: David Guillen Fandos <[email protected]> > > --- > > gcc/config/mips/mips-cpus.def | 1 + > > gcc/config/mips/mips-tables.opt | 371 ++++++++++++++++---------------- > > gcc/config/mips/mips.cc | 14 ++ > > gcc/config/mips/mips.h | 21 +- > > gcc/config/mips/mips.md | 3 + > > gcc/doc/invoke.texi | 1 + > > 6 files changed, 223 insertions(+), 188 deletions(-) > > > > diff --git a/gcc/config/mips/mips-cpus.def b/gcc/config/mips/mips-cpus.def > > index dfc41162bf0..c45da84a77a 100644 > > --- a/gcc/config/mips/mips-cpus.def > > +++ b/gcc/config/mips/mips-cpus.def > > @@ -62,6 +62,7 @@ MIPS_CPU ("r3900", PROCESSOR_R3900, MIPS_ISA_MIPS1, 0) > > > > /* MIPS II processors. */ > > MIPS_CPU ("r6000", PROCESSOR_R6000, MIPS_ISA_MIPS2, 0) > > +MIPS_CPU ("allegrex", PROCESSOR_ALLEGREX, MIPS_ISA_MIPS2, 0) > > > > /* MIPS III processors. */ > > MIPS_CPU ("r4000", PROCESSOR_R4000, MIPS_ISA_MIPS3, 0) > > diff --git a/gcc/config/mips/mips-tables.opt > > b/gcc/config/mips/mips-tables.opt > > index 027abd74048..5fccd9888b7 100644 > > --- a/gcc/config/mips/mips-tables.opt > > +++ b/gcc/config/mips/mips-tables.opt > > @@ -160,554 +160,557 @@ EnumValue > > Enum(mips_arch_opt_value) String(6k) Value(17) > > > > EnumValue > > -Enum(mips_arch_opt_value) String(r4000) Value(18) Canonical > > +Enum(mips_arch_opt_value) String(allegrex) Value(18) Canonical > > > > I am sorry that I guess we have an agreement that to put > Enum(mips_arch_opt_value) String(allegrex) > to the end of the list. so that we can make the diff minimal.
Sorry about the misunderstanding! I reordered allegrex in gcc/config/mips/mips.md instead, my bad! The file gcc/config/mips/mips-tables.opt is autogenerated using the script gcc/config/mips/genopt.sh by consuming the gcc/config/mips/mips-cpus.def file, so in order to get this new CPU at the end of the .opt file, I would need to move it to the end of the .def file (after "MIPS64 Release 6 processors"), right? I placed it after r6000 since Allegrex is a MIPS II processor (plus minus some minor things). Let me know if you still want this moved to the end or whether the current position is acceptable. Thank you!
