aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2013-11-01 09:39:31 +0100
committerUros Bizjak <uros@gcc.gnu.org>2013-11-01 09:39:31 +0100
commit13a26a7d10c7beb64dcdb8c41d6c4b1d81a1a271 (patch)
tree2389ec09c09ab8d3e08ead56d13f42c99709506e /gcc/config
parent942323000bbc5bde768c0f651d62af5eea462c1d (diff)
downloadgcc-13a26a7d10c7beb64dcdb8c41d6c4b1d81a1a271.zip
gcc-13a26a7d10c7beb64dcdb8c41d6c4b1d81a1a271.tar.gz
gcc-13a26a7d10c7beb64dcdb8c41d6c4b1d81a1a271.tar.bz2
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
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/i386/i386.md17
-rw-r--r--gcc/config/i386/mmx.md11
-rw-r--r--gcc/config/i386/sse.md2
3 files changed, 12 insertions, 18 deletions
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index 79db5f8..383bb97 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -2007,11 +2007,10 @@
return "pxor\t%0, %0";
case TYPE_MMXMOV:
-#ifndef HAVE_AS_IX86_INTERUNIT_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}";
-#endif
return "movq\t{%1, %0|%0, %1}";
case TYPE_SSELOG1:
@@ -2024,11 +2023,10 @@
switch (get_attr_mode (insn))
{
case MODE_DI:
-#ifndef HAVE_AS_IX86_INTERUNIT_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}";
-#endif
return "%vmovq\t{%1, %0|%0, %1}";
case MODE_TI:
return "%vmovdqa\t{%1, %0|%0, %1}";
@@ -2944,12 +2942,11 @@
return "movlpd\t{%1, %0|%0, %1}";
case MODE_DI:
-#ifndef HAVE_AS_IX86_INTERUNIT_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}";
-#endif
- return "%vmovq\t{%1, %0|%0, %1}";
+ return "%vmovq\t{%1, %0|%0, %1}";
default:
gcc_unreachable ();
diff --git a/gcc/config/i386/mmx.md b/gcc/config/i386/mmx.md
index 17e2499..cc0db3a 100644
--- a/gcc/config/i386/mmx.md
+++ b/gcc/config/i386/mmx.md
@@ -99,11 +99,10 @@
return "pxor\t%0, %0";
case TYPE_MMXMOV:
-#ifndef HAVE_AS_IX86_INTERUNIT_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}";
-#endif
return "movq\t{%1, %0|%0, %1}";
case TYPE_SSECVT:
@@ -119,15 +118,13 @@
switch (get_attr_mode (insn))
{
case MODE_DI:
-#ifndef HAVE_AS_IX86_INTERUNIT_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}";
-#endif
return "%vmovq\t{%1, %0|%0, %1}";
case MODE_TI:
return "%vmovdqa\t{%1, %0|%0, %1}";
-
case MODE_XI:
return "vmovdqa64\t{%g1, %g0|%g0, %g1}";
diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
index 7187035..9094a1c 100644
--- a/gcc/config/i386/sse.md
+++ b/gcc/config/i386/sse.md
@@ -9489,7 +9489,7 @@
"@
pinsrq\t{$1, %2, %0|%0, %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}
movq2dq\t{%1, %0|%0, %1}
punpcklqdq\t{%2, %0|%0, %2}