diff options
Diffstat (limited to 'sim/mips/configure')
-rwxr-xr-x | sim/mips/configure | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/sim/mips/configure b/sim/mips/configure index 2521ce8..956b967 100755 --- a/sim/mips/configure +++ b/sim/mips/configure @@ -1871,7 +1871,8 @@ case "${target}" in sim_gen=MULTI sim_multi_configs="\ micromips:micromips64,micromipsdsp:32,64,f:mips_micromips\ - mips64r2:mips64r2,mips3d,mips16,mips16e,mdmx,dsp,dsp2,smartmips:32,64,f:mipsisa64r2" + mipsisa64r2:mips64r2,mips16,mips16e,mdmx,dsp,dsp2,mips3d,smartmips:32,64,f:mipsisa32r2,mipsisa64r2,mipsisa32r5,mipsisa64r5\ + mipsisa64r6:mips64r6:32,64,f:mipsisa32r6,mipsisa64r6" sim_multi_default=mipsisa64r2 ;; mips64*-*-*) sim_igen_filter="32,64,f" @@ -1887,6 +1888,11 @@ case "${target}" in mips32r2:mips32r2,mips3d,mips16,mips16e,mdmx,dsp,dsp2,smartmips:32,f:mipsisa32r2" sim_multi_default=mipsisa32r2 ;; + mipsisa32r6*-*-*) sim_gen=IGEN + sim_igen_machine="-M mips32r6" + sim_igen_filter="32,f" + sim_mach_default="mipsisa32r6" + ;; mipsisa32*-*-*) sim_gen=M16 sim_igen_machine="-M mips32,mips16,mips16e,smartmips" sim_m16_machine="-M mips16,mips16e,mips32" @@ -1899,6 +1905,11 @@ case "${target}" in sim_igen_filter="32,64,f" sim_mach_default="mipsisa64r2" ;; + mipsisa64r6*-*-*) sim_gen=IGEN + sim_igen_machine="-M mips64r6" + sim_igen_filter="32,64,f" + sim_mach_default="mipsisa64r6" + ;; mipsisa64sb1*-*-*) sim_gen=IGEN sim_igen_machine="-M mips64,mips3d,sb1" sim_igen_filter="32,64,f" @@ -1963,7 +1974,7 @@ if test ${sim_gen} = MULTI; then cat << __EOF__ > multi-run.c /* Main entry point for MULTI simulators. - Copyright (C) 2003-2021 Free Software Foundation, Inc. + Copyright (C) 2003-2022 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -1985,6 +1996,7 @@ if test ${sim_gen} = MULTI; then #include "sim-main.h" #include "multi-include.h" #include "elf-bfd.h" +#include "elfxx-mips.h" #include "elf/mips.h" #define SD sd @@ -2004,7 +2016,11 @@ sim_engine_run (SIM_DESC sd, & EF_MIPS_ARCH_ASE_MICROMIPS) mach = bfd_mach_mips_micromips; else - mach = STATE_ARCHITECTURE (SD)->mach; + { + mach = _bfd_elf_mips_mach (elf_elfheader (STATE_PROG_BFD (sd))->e_flags); + if (!mach) + mach = STATE_ARCHITECTURE (SD)->mach; + } switch (mach) { |