Commit 13a26a7d by Uros Bizjak Committed by Uros Bizjak

configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): Always define as 0/1.

	* configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): Always define as 0/1.
	* configure: Regenerate.
	* config/i386/i386.md (*movdi_internal): Change
	HAVE_AS_IX86_INTERUNIT_MOVQ to runtime check.
	(*movdf_internal): Ditto.
	* config/i386/mmx.md (*mov<mode>_internal): Ditto.
	* config/i386/sse.md (vec_concatv2di): Output interunit movq
	for HAVE_AS_IX86_INTERUNIT_MOVQ targets.

From-SVN: r204289
parent 94232300
2013-11-01 Uros Bizjak <ubizjak@gmail.com>
* configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): Always define as 0/1.
* configure: Regenerate.
* config/i386/i386.md (*movdi_internal): Change
HAVE_AS_IX86_INTERUNIT_MOVQ to runtime check.
(*movdf_internal): Ditto.
* config/i386/mmx.md (*mov<mode>_internal): Ditto.
* config/i386/sse.md (vec_concatv2di): Output interunit movq
for HAVE_AS_IX86_INTERUNIT_MOVQ targets.
2013-10-31 Robert Suchanek <Robert.Suchanek@imgtec.com> 2013-10-31 Robert Suchanek <Robert.Suchanek@imgtec.com>
* lra-spills.c (assign_spill_hard_regs): Remove statement terminator * lra-spills.c (assign_spill_hard_regs): Remove statement terminator
...@@ -2007,11 +2007,10 @@ ...@@ -2007,11 +2007,10 @@
return "pxor\t%0, %0"; return "pxor\t%0, %0";
case TYPE_MMXMOV: case TYPE_MMXMOV:
#ifndef HAVE_AS_IX86_INTERUNIT_MOVQ
/* Handle broken assemblers that require movd instead of movq. */ /* Handle broken assemblers that require movd instead of movq. */
if (GENERAL_REG_P (operands[0]) || GENERAL_REG_P (operands[1])) if (!HAVE_AS_IX86_INTERUNIT_MOVQ
&& (GENERAL_REG_P (operands[0]) || GENERAL_REG_P (operands[1])))
return "movd\t{%1, %0|%0, %1}"; return "movd\t{%1, %0|%0, %1}";
#endif
return "movq\t{%1, %0|%0, %1}"; return "movq\t{%1, %0|%0, %1}";
case TYPE_SSELOG1: case TYPE_SSELOG1:
...@@ -2024,11 +2023,10 @@ ...@@ -2024,11 +2023,10 @@
switch (get_attr_mode (insn)) switch (get_attr_mode (insn))
{ {
case MODE_DI: case MODE_DI:
#ifndef HAVE_AS_IX86_INTERUNIT_MOVQ
/* Handle broken assemblers that require movd instead of movq. */ /* Handle broken assemblers that require movd instead of movq. */
if (GENERAL_REG_P (operands[0]) || GENERAL_REG_P (operands[1])) if (!HAVE_AS_IX86_INTERUNIT_MOVQ
&& (GENERAL_REG_P (operands[0]) || GENERAL_REG_P (operands[1])))
return "%vmovd\t{%1, %0|%0, %1}"; return "%vmovd\t{%1, %0|%0, %1}";
#endif
return "%vmovq\t{%1, %0|%0, %1}"; return "%vmovq\t{%1, %0|%0, %1}";
case MODE_TI: case MODE_TI:
return "%vmovdqa\t{%1, %0|%0, %1}"; return "%vmovdqa\t{%1, %0|%0, %1}";
...@@ -2944,11 +2942,10 @@ ...@@ -2944,11 +2942,10 @@
return "movlpd\t{%1, %0|%0, %1}"; return "movlpd\t{%1, %0|%0, %1}";
case MODE_DI: case MODE_DI:
#ifndef HAVE_AS_IX86_INTERUNIT_MOVQ
/* Handle broken assemblers that require movd instead of movq. */ /* Handle broken assemblers that require movd instead of movq. */
if (GENERAL_REG_P (operands[0]) || GENERAL_REG_P (operands[1])) if (!HAVE_AS_IX86_INTERUNIT_MOVQ
&& (GENERAL_REG_P (operands[0]) || GENERAL_REG_P (operands[1])))
return "%vmovd\t{%1, %0|%0, %1}"; return "%vmovd\t{%1, %0|%0, %1}";
#endif
return "%vmovq\t{%1, %0|%0, %1}"; return "%vmovq\t{%1, %0|%0, %1}";
default: default:
......
...@@ -99,11 +99,10 @@ ...@@ -99,11 +99,10 @@
return "pxor\t%0, %0"; return "pxor\t%0, %0";
case TYPE_MMXMOV: case TYPE_MMXMOV:
#ifndef HAVE_AS_IX86_INTERUNIT_MOVQ
/* Handle broken assemblers that require movd instead of movq. */ /* Handle broken assemblers that require movd instead of movq. */
if (GENERAL_REG_P (operands[0]) || GENERAL_REG_P (operands[1])) if (!HAVE_AS_IX86_INTERUNIT_MOVQ
&& (GENERAL_REG_P (operands[0]) || GENERAL_REG_P (operands[1])))
return "movd\t{%1, %0|%0, %1}"; return "movd\t{%1, %0|%0, %1}";
#endif
return "movq\t{%1, %0|%0, %1}"; return "movq\t{%1, %0|%0, %1}";
case TYPE_SSECVT: case TYPE_SSECVT:
...@@ -119,15 +118,13 @@ ...@@ -119,15 +118,13 @@
switch (get_attr_mode (insn)) switch (get_attr_mode (insn))
{ {
case MODE_DI: case MODE_DI:
#ifndef HAVE_AS_IX86_INTERUNIT_MOVQ
/* Handle broken assemblers that require movd instead of movq. */ /* Handle broken assemblers that require movd instead of movq. */
if (GENERAL_REG_P (operands[0]) || GENERAL_REG_P (operands[1])) if (!HAVE_AS_IX86_INTERUNIT_MOVQ
&& (GENERAL_REG_P (operands[0]) || GENERAL_REG_P (operands[1])))
return "%vmovd\t{%1, %0|%0, %1}"; return "%vmovd\t{%1, %0|%0, %1}";
#endif
return "%vmovq\t{%1, %0|%0, %1}"; return "%vmovq\t{%1, %0|%0, %1}";
case MODE_TI: case MODE_TI:
return "%vmovdqa\t{%1, %0|%0, %1}"; return "%vmovdqa\t{%1, %0|%0, %1}";
case MODE_XI: case MODE_XI:
return "vmovdqa64\t{%g1, %g0|%g0, %g1}"; return "vmovdqa64\t{%g1, %g0|%g0, %g1}";
......
...@@ -9489,7 +9489,7 @@ ...@@ -9489,7 +9489,7 @@
"@ "@
pinsrq\t{$1, %2, %0|%0, %2, 1} pinsrq\t{$1, %2, %0|%0, %2, 1}
vpinsrq\t{$1, %2, %1, %0|%0, %1, %2, 1} vpinsrq\t{$1, %2, %1, %0|%0, %1, %2, 1}
%vmovd\t{%1, %0|%0, %1} * return HAVE_AS_IX86_INTERUNIT_MOVQ ? \"%vmovq\t{%1, %0|%0, %1}\" : \"%vmovd\t{%1, %0|%0, %1}\";
%vmovq\t{%1, %0|%0, %1} %vmovq\t{%1, %0|%0, %1}
movq2dq\t{%1, %0|%0, %1} movq2dq\t{%1, %0|%0, %1}
punpcklqdq\t{%2, %0|%0, %2} punpcklqdq\t{%2, %0|%0, %2}
......
...@@ -24802,11 +24802,12 @@ else ...@@ -24802,11 +24802,12 @@ else
fi fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_ix86_interunit_movq" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_ix86_interunit_movq" >&5
$as_echo "$gcc_cv_as_ix86_interunit_movq" >&6; } $as_echo "$gcc_cv_as_ix86_interunit_movq" >&6; }
if test $gcc_cv_as_ix86_interunit_movq = yes; then
$as_echo "#define HAVE_AS_IX86_INTERUNIT_MOVQ 1" >>confdefs.h
fi cat >>confdefs.h <<_ACEOF
#define HAVE_AS_IX86_INTERUNIT_MOVQ `if test $gcc_cv_as_ix86_interunit_movq = yes; then echo 1; else echo 0; fi`
_ACEOF
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for hle prefixes" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for hle prefixes" >&5
$as_echo_n "checking assembler for hle prefixes... " >&6; } $as_echo_n "checking assembler for hle prefixes... " >&6; }
......
...@@ -3754,9 +3754,10 @@ foo: nop ...@@ -3754,9 +3754,10 @@ foo: nop
gcc_cv_as_ix86_interunit_movq,,, gcc_cv_as_ix86_interunit_movq,,,
[.code64 [.code64
movq %mm0, %rax movq %mm0, %rax
movq %rax, %xmm0],, movq %rax, %xmm0])
[AC_DEFINE(HAVE_AS_IX86_INTERUNIT_MOVQ, 1, AC_DEFINE_UNQUOTED(HAVE_AS_IX86_INTERUNIT_MOVQ,
[Define if your assembler supports interunit movq mnemonic.])]) [`if test $gcc_cv_as_ix86_interunit_movq = yes; then echo 1; else echo 0; fi`],
[Define if your assembler supports interunit movq mnemonic.])
gcc_GAS_CHECK_FEATURE([hle prefixes], gcc_GAS_CHECK_FEATURE([hle prefixes],
gcc_cv_as_ix86_hle,,, gcc_cv_as_ix86_hle,,,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment