# Copyright (C) 2007-2014 Free Software Foundation, Inc. # # This file is part of GCC. # # GCC is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # GCC is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GCC; see the file COPYING3. If not see # . # Run compatibility tests in which the "alt" compiler tries to force # MIPS16 mode. # We can only guarantee MIPS16 runtime support for certain targets. if { ![istarget mipsisa*-*-elf*] && ![istarget mips64vr*-*-elf*] } { return } load_lib gcc-dg.exp # Check whether the flags are compatible with MIPS16 code generation. if { ![check_effective_target_mips16_attribute] } { return } # Save the old value of CFLAGS_FOR_TARGET, if any. global saved_CFLAGS_FOR_TARGET if { [info exists CFLAGS_FOR_TARGET] } { set saved_CFLAGS_FOR_TARGET $CFLAGS_FOR_TARGET } else { unset -nocomplain saved_CFLAGS_FOR_TARGET } # The "alt" compiler is the normal compiler with an extra "-mips16" argument. proc compat-use-alt-compiler { } { global saved_CFLAGS_FOR_TARGET CFLAGS_FOR_TARGET if { [info exists saved_CFLAGS_FOR_TARGET] } { set CFLAGS_FOR_TARGET [concat $saved_CFLAGS_FOR_TARGET "-mips16"] } else { set CFLAGS_FOR_TARGET "-mips16" } } # Make the compiler under test the default. proc compat-use-tst-compiler { } { global saved_CFLAGS_FOR_TARGET CFLAGS_FOR_TARGET if { [info exists saved_CFLAGS_FOR_TARGET] } { set CFLAGS_FOR_TARGET $saved_CFLAGS_FOR_TARGET } else { unset -nocomplain CFLAGS_FOR_TARGET } } load_lib compat.exp gcc_init foreach src [lsort [find $srcdir/$subdir mips16_*_main.c]] { if { [runtest_file_p $runtests $src] } { compat-execute $src "mips16_inter" 1 } } compat-use-tst-compiler