MIPS: Only pass floating-point options to the assembler when necessary

gcc/
	* config/mips/mips.h (FP_ASM_SPEC): New define.
	(ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
	instead.

From-SVN: r219867
This commit is contained in:
Matthew Fortune 2015-01-19 23:05:41 +00:00 committed by Matthew Fortune
parent e5f3553320
commit aa0c464a8a
2 changed files with 24 additions and 3 deletions

View file

@ -1,3 +1,9 @@
2015-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
* config/mips/mips.h (FP_ASM_SPEC): New define.
(ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
instead.
2015-01-19 Oleg Endo <olegendo@gcc.gnu.org>
PR target/53988

View file

@ -1243,6 +1243,22 @@ struct mips_cpu_info {
%{gcoff*:-mdebug} %{!gcoff*:-no-mdebug}"
#endif
/* FP_ASM_SPEC represents the floating-point options that must be passed
to the assembler when FPXX support exists. Prior to that point the
assembler could accept the options but were not required for
correctness. We only add the options when absolutely necessary
because passing -msoft-float to the assembler will cause it to reject
all hard-float instructions which may require some user code to be
updated. */
#ifdef HAVE_AS_DOT_MODULE
#define FP_ASM_SPEC "\
%{mhard-float} %{msoft-float} \
%{msingle-float} %{mdouble-float}"
#else
#define FP_ASM_SPEC
#endif
/* SUBTARGET_ASM_SPEC is always passed to the assembler. It may be
overridden by subtargets. */
@ -1277,9 +1293,8 @@ struct mips_cpu_info {
%{modd-spreg} %{mno-odd-spreg} \
%{mshared} %{mno-shared} \
%{msym32} %{mno-sym32} \
%{mtune=*} \
%{mhard-float} %{msoft-float} \
%{msingle-float} %{mdouble-float} \
%{mtune=*}" \
FP_ASM_SPEC "\
%(subtarget_asm_spec)"
/* Extra switches sometimes passed to the linker. */