* configure.ac (mipsisa*-*-elfoabi*): New stanza.
* configure: Regenerate.
config/
* mt-mips-elfoabi: New file.
gcc/
* doc/invoke.texi (-minterlink-mips16): Document.
* config/mips/mips.opt (minterlink-mips16): New option.
* config/mips/mips.c (mips_function_ok_for_sibcall): Handle
-minterlink-mips16
From-SVN: r128625
+2007-09-20 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * configure.ac (mipsisa*-*-elfoabi*): New stanza.
+ * configure: Regenerate.
+
2007-09-20 Paul Jarc <prj-bugzilla-gcc@multivac.cwru.edu>
PR bootstrap/31906
+2007-09-20 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * mt-mips-elfoabi: New file.
+
2007-09-07 Richard Sandiford <richard@codesourcery.com>
* mt-sde (CFLAGS_FOR_TARGET): Add -mno-gpopt.
--- /dev/null
+# The *-elfoabi configurations are intended to be usable for both
+# MIPS16 and non-MIPS16 code, but the libraries are all non-MIPS16.
+# Add -minterlink-mips16 so that the libraries can be used with both
+# ISA modes.
+CFLAGS_FOR_TARGET = -minterlink-mips16
+CXXFLAGS_FOR_TARGET = -minterlink-mips16
mips*-sde-elf*)
target_makefile_frag="config/mt-sde"
;;
+ mipsisa*-*-elfoabi*)
+ target_makefile_frag="config/mt-mips-elfoabi"
+ ;;
*-*-netware*)
target_makefile_frag="config/mt-netware"
;;
mips*-sde-elf*)
target_makefile_frag="config/mt-sde"
;;
+ mipsisa*-*-elfoabi*)
+ target_makefile_frag="config/mt-mips-elfoabi"
+ ;;
*-*-netware*)
target_makefile_frag="config/mt-netware"
;;
+2007-09-20 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * doc/invoke.texi (-minterlink-mips16): Document.
+ * config/mips/mips.opt (minterlink-mips16): New option.
+ * config/mips/mips.c (mips_function_ok_for_sibcall): Handle
+ -minterlink-mips16
+
2007-09-20 Joseph Myers <joseph@codesourcery.com>
* doc/extend.texi (Attribute Syntax): Remove old speculative
if (mips_use_mips16_mode_p (decl))
return false;
+ /* ...and when -minterlink-mips16 is in effect, assume that external
+ functions could be MIPS16 ones unless an attribute explicitly
+ tells us otherwise. We only care about cases where the sibling
+ and normal calls would both be direct. */
+ if (TARGET_INTERLINK_MIPS16
+ && decl
+ && DECL_EXTERNAL (decl)
+ && !mips_nomips16_decl_p (decl)
+ && const_call_insn_operand (XEXP (DECL_RTL (decl), 0), VOIDmode))
+ return false;
+
/* Otherwise OK. */
return true;
}
Target Report RejectNegative InverseMask(SOFT_FLOAT_ABI, HARD_FLOAT_ABI)
Allow the use of hardware floating-point ABI and instructions
+minterlink-mips16
+Target Report Var(TARGET_INTERLINK_MIPS16) Init(0)
+Generate code that can be safely linked with MIPS16 code.
+
mips
Target RejectNegative Joined
-mipsN Generate code for ISA level N
@gccoptlist{-EL -EB -march=@var{arch} -mtune=@var{arch} @gol
-mips1 -mips2 -mips3 -mips4 -mips32 -mips32r2 -mips64 @gol
-mips16 -mno-mips16 -mflip-mips16 @gol
+-minterlink-mips16 -mno-interlink-mips16 @gol
-mabi=@var{abi} -mabicalls -mno-abicalls @gol
-mshared -mno-shared -mxgot -mno-xgot -mgp32 -mgp64 @gol
-mfp32 -mfp64 -mhard-float -msoft-float @gol
for regression testing of mixed MIPS16/non-MIPS16 code generation, and is
not intended for ordinary use in compiling user code.
+@item -minterlink-mips16
+@itemx -mno-interlink-mips16
+@opindex minterlink-mips16
+@opindex mno-interlink-mips16
+Require (do not require) that non-MIPS16 code be link-compatible with
+MIPS16 code.
+
+For example, non-MIPS16 code cannot jump directly to MIPS16 code;
+it must either use a call or an indirect jump. @option{-minterlink-mips16}
+therefore disables direct jumps unless GCC knows that the target of the
+jump is not MIPS16.
+
@item -mabi=32
@itemx -mabi=o64
@itemx -mabi=n32