diff options
author | Uros Bizjak <ubizjak@gmail.com> | 2013-11-01 09:39:31 +0100 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2013-11-01 09:39:31 +0100 |
commit | 13a26a7d10c7beb64dcdb8c41d6c4b1d81a1a271 (patch) | |
tree | 2389ec09c09ab8d3e08ead56d13f42c99709506e /gcc/config | |
parent | 942323000bbc5bde768c0f651d62af5eea462c1d (diff) | |
download | gcc-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.md | 17 | ||||
-rw-r--r-- | gcc/config/i386/mmx.md | 11 | ||||
-rw-r--r-- | gcc/config/i386/sse.md | 2 |
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} |