diff options
author | Uros Bizjak <ubizjak@gmail.com> | 2011-11-20 20:17:08 +0100 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2011-11-20 20:17:08 +0100 |
commit | aa198500fe174e80672d8145a9dc1c614364a0eb (patch) | |
tree | 9c041aeed3c6c1c64329041e323d689c7763760a | |
parent | 03e1048e9f243d391d9e852d21dad610a3f0a23c (diff) | |
download | gcc-aa198500fe174e80672d8145a9dc1c614364a0eb.zip gcc-aa198500fe174e80672d8145a9dc1c614364a0eb.tar.gz gcc-aa198500fe174e80672d8145a9dc1c614364a0eb.tar.bz2 |
i386.md (UNSPEC_MOVNTI): Remove.
* config/i386/i386.md (UNSPEC_MOVNTI): Remove.
(UNSPEC_MOVNTQ): New unspec.
* config/i386/mmx.md (sse_movntq): Rename from sse_movntdi.
Use UNSPEC_MOVNTQ instead of UNSPEC_MOVNT.
* config/i386/sse.md (sse2_movnti<mode>): Use UNSPEC_MOVNT instead of
UNSPEC_MOVNTI.
(STORENT_MODE): Add DI and V4DI modes.
From-SVN: r181531
-rw-r--r-- | gcc/ChangeLog | 12 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 2 | ||||
-rw-r--r-- | gcc/config/i386/i386.md | 2 | ||||
-rw-r--r-- | gcc/config/i386/mmx.md | 4 | ||||
-rw-r--r-- | gcc/config/i386/sse.md | 7 |
5 files changed, 19 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 69aa0fb..d2ed66a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2011-11-20 Uros Bizjak <ubizjak@gmail.com> + + * config/i386/i386.md (UNSPEC_MOVNTI): Remove. + (UNSPEC_MOVNTQ): New unspec. + * config/i386/mmx.md (sse_movntq): Rename from sse_movntdi. + Use UNSPEC_MOVNTQ instead of UNSPEC_MOVNT. + * config/i386/sse.md (sse2_movnti<mode>): Use UNSPEC_MOVNT instead of + UNSPEC_MOVNTI. + (STORENT_MODE): Add DI and V4DI modes. + 2011-11-20 Nathan Sidwell <nathan@acm.org> PR gcov-profile/51113 @@ -119,7 +129,7 @@ (avr_const_address_lo16): New static function. (avr_assemble_integer): Use it to handle 3-byte integers. (avr_emit_movmemhi, avr_out_movmem): New functions. - + * config/avr/predicates.md (nox_general_operand): Handle new address spaces. * config/avr/avr.md (unspec): Add UNSPEC_MOVMEM. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index e197524..d92f8e2 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -26415,7 +26415,7 @@ static const struct builtin_description bdesc_special_args[] = /* SSE or 3DNow!A */ { OPTION_MASK_ISA_SSE | OPTION_MASK_ISA_3DNOW_A, CODE_FOR_sse_sfence, "__builtin_ia32_sfence", IX86_BUILTIN_SFENCE, UNKNOWN, (int) VOID_FTYPE_VOID }, - { OPTION_MASK_ISA_SSE | OPTION_MASK_ISA_3DNOW_A, CODE_FOR_sse_movntdi, "__builtin_ia32_movntq", IX86_BUILTIN_MOVNTQ, UNKNOWN, (int) VOID_FTYPE_PULONGLONG_ULONGLONG }, + { OPTION_MASK_ISA_SSE | OPTION_MASK_ISA_3DNOW_A, CODE_FOR_sse_movntq, "__builtin_ia32_movntq", IX86_BUILTIN_MOVNTQ, UNKNOWN, (int) VOID_FTYPE_PULONGLONG_ULONGLONG }, /* SSE2 */ { OPTION_MASK_ISA_SSE2, CODE_FOR_sse2_lfence, "__builtin_ia32_lfence", IX86_BUILTIN_LFENCE, UNKNOWN, (int) VOID_FTYPE_VOID }, diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index daf1387..912c172 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -115,8 +115,8 @@ UNSPEC_FIX_NOTRUNC UNSPEC_MASKMOV UNSPEC_MOVMSK + UNSPEC_MOVNTQ UNSPEC_MOVNT - UNSPEC_MOVNTI UNSPEC_MOVU UNSPEC_RCP UNSPEC_RSQRT diff --git a/gcc/config/i386/mmx.md b/gcc/config/i386/mmx.md index f76834e..7fa072e 100644 --- a/gcc/config/i386/mmx.md +++ b/gcc/config/i386/mmx.md @@ -329,10 +329,10 @@ DONE; }) -(define_insn "sse_movntdi" +(define_insn "sse_movntq" [(set (match_operand:DI 0 "memory_operand" "=m") (unspec:DI [(match_operand:DI 1 "register_operand" "y")] - UNSPEC_MOVNT))] + UNSPEC_MOVNTQ))] "TARGET_SSE || TARGET_3DNOW_A" "movntq\t{%1, %0|%0, %1}" [(set_attr "type" "mmxmov") diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index e64864a..8955996 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -576,7 +576,7 @@ (define_insn "sse2_movnti<mode>" [(set (match_operand:SWI48 0 "memory_operand" "=m") (unspec:SWI48 [(match_operand:SWI48 1 "register_operand" "r")] - UNSPEC_MOVNTI))] + UNSPEC_MOVNT))] "TARGET_SSE2" "movnti\t{%1, %0|%0, %1}" [(set_attr "type" "ssemov") @@ -614,8 +614,9 @@ ;; Modes handled by storent patterns. (define_mode_iterator STORENT_MODE - [(SI "TARGET_SSE2") (SF "TARGET_SSE4A") (DF "TARGET_SSE4A") - (V2DI "TARGET_SSE2") + [(DI "TARGET_SSE2 && TARGET_64BIT") (SI "TARGET_SSE2") + (SF "TARGET_SSE4A") (DF "TARGET_SSE4A") + (V4DI "TARGET_AVX") (V2DI "TARGET_SSE2") (V8SF "TARGET_AVX") V4SF (V4DF "TARGET_AVX") (V2DF "TARGET_SSE2")]) |