diff options
author | Jakub Jelinek <jakub@redhat.com> | 2011-10-27 21:52:06 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2011-10-27 21:52:06 +0200 |
commit | 32cac6f1ae656a45a32dbc3de0d8362c4b9703ca (patch) | |
tree | dfaefa30ff8fa32f9f7b3652008782a7447e3bd6 /gcc | |
parent | c419671cf3dc5b2869f06922c56c2091c1867580 (diff) | |
download | gcc-32cac6f1ae656a45a32dbc3de0d8362c4b9703ca.zip gcc-32cac6f1ae656a45a32dbc3de0d8362c4b9703ca.tar.gz gcc-32cac6f1ae656a45a32dbc3de0d8362c4b9703ca.tar.bz2 |
i386.c (ix86_print_operand): Handle 'q' and 'x' overrides for -masm=intel memory.
* config/i386/i386.c (ix86_print_operand): Handle 'q' and 'x'
overrides for -masm=intel memory.
* config/i386/sse.md (sse2_cvtdq2pd, sse2_cvtps2pd,
sse4_1_<code>v8qiv8hi2, avx2_<code>v8qiv8si2,
sse4_1_<code>v4hiv4si2, avx2_<code>v4hiv4di2,
sse4_1_<code>v2siv2di2): Use %q1 instead of %1 for -masm=intel.
(sse4_1_<code>v4qiv4si2, avx2_<code>v4qiv4di2,
sse4_1_<code>v2hiv2di2): Use %k1 instead of %1 for -masm=intel.
(sse4_1_<code>v2qiv2di2): Use %w1 instead of %1 for -masm=intel.
From-SVN: r180579
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 12 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 7 | ||||
-rw-r--r-- | gcc/config/i386/sse.md | 22 |
3 files changed, 29 insertions, 12 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 66d62cc..e64511d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,15 @@ +2011-10-27 Jakub Jelinek <jakub@redhat.com> + + * config/i386/i386.c (ix86_print_operand): Handle 'q' and 'x' + overrides for -masm=intel memory. + * config/i386/sse.md (sse2_cvtdq2pd, sse2_cvtps2pd, + sse4_1_<code>v8qiv8hi2, avx2_<code>v8qiv8si2, + sse4_1_<code>v4hiv4si2, avx2_<code>v4hiv4di2, + sse4_1_<code>v2siv2di2): Use %q1 instead of %1 for -masm=intel. + (sse4_1_<code>v4qiv4si2, avx2_<code>v4qiv4di2, + sse4_1_<code>v2hiv2di2): Use %k1 instead of %1 for -masm=intel. + (sse4_1_<code>v2qiv2di2): Use %w1 instead of %1 for -masm=intel. + 2011-10-27 Martin Jambor <mjambor@suse.cz> * ipa-prop.c (compute_pass_through_member_ptrs): Rename parm_info diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index c6e09ae..7072d42 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -14118,13 +14118,18 @@ ix86_print_operand (FILE *file, rtx x, int code) gcc_unreachable (); } - /* Check for explicit size override (codes 'b', 'w' and 'k') */ + /* Check for explicit size override (codes 'b', 'w', 'k', + 'q' and 'x') */ if (code == 'b') size = "BYTE"; else if (code == 'w') size = "WORD"; else if (code == 'k') size = "DWORD"; + else if (code == 'q') + size = "QWORD"; + else if (code == 'x') + size = "XMMWORD"; fputs (size, file); fputs (" PTR ", file); diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index c4366ba..25854e4 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -2529,7 +2529,7 @@ (match_operand:V4SI 1 "nonimmediate_operand" "xm") (parallel [(const_int 0) (const_int 1)]))))] "TARGET_SSE2" - "%vcvtdq2pd\t{%1, %0|%0, %1}" + "%vcvtdq2pd\t{%1, %0|%0, %q1}" [(set_attr "type" "ssecvt") (set_attr "prefix" "maybe_vex") (set_attr "mode" "V2DF")]) @@ -2724,7 +2724,7 @@ (match_operand:V4SF 1 "nonimmediate_operand" "xm") (parallel [(const_int 0) (const_int 1)]))))] "TARGET_SSE2" - "%vcvtps2pd\t{%1, %0|%0, %1}" + "%vcvtps2pd\t{%1, %0|%0, %q1}" [(set_attr "type" "ssecvt") (set_attr "amdfam10_decode" "direct") (set_attr "athlon_decode" "double") @@ -9675,7 +9675,7 @@ (const_int 6) (const_int 7)]))))] "TARGET_SSE4_1" - "%vpmov<extsuffix>bw\t{%1, %0|%0, %1}" + "%vpmov<extsuffix>bw\t{%1, %0|%0, %q1}" [(set_attr "type" "ssemov") (set_attr "prefix_extra" "1") (set_attr "prefix" "maybe_vex") @@ -9695,7 +9695,7 @@ (const_int 6) (const_int 7)]))))] "TARGET_AVX2" - "vpmov<extsuffix>bd\t{%1, %0|%0, %1}" + "vpmov<extsuffix>bd\t{%1, %0|%0, %q1}" [(set_attr "type" "ssemov") (set_attr "prefix_extra" "1") (set_attr "prefix" "vex") @@ -9711,7 +9711,7 @@ (const_int 2) (const_int 3)]))))] "TARGET_SSE4_1" - "%vpmov<extsuffix>bd\t{%1, %0|%0, %1}" + "%vpmov<extsuffix>bd\t{%1, %0|%0, %k1}" [(set_attr "type" "ssemov") (set_attr "prefix_extra" "1") (set_attr "prefix" "maybe_vex") @@ -9738,7 +9738,7 @@ (const_int 2) (const_int 3)]))))] "TARGET_SSE4_1" - "%vpmov<extsuffix>wd\t{%1, %0|%0, %1}" + "%vpmov<extsuffix>wd\t{%1, %0|%0, %q1}" [(set_attr "type" "ssemov") (set_attr "prefix_extra" "1") (set_attr "prefix" "maybe_vex") @@ -9754,7 +9754,7 @@ (const_int 2) (const_int 3)]))))] "TARGET_AVX2" - "vpmov<extsuffix>bq\t{%1, %0|%0, %1}" + "vpmov<extsuffix>bq\t{%1, %0|%0, %k1}" [(set_attr "type" "ssemov") (set_attr "prefix_extra" "1") (set_attr "prefix" "vex") @@ -9768,7 +9768,7 @@ (parallel [(const_int 0) (const_int 1)]))))] "TARGET_SSE4_1" - "%vpmov<extsuffix>bq\t{%1, %0|%0, %1}" + "%vpmov<extsuffix>bq\t{%1, %0|%0, %w1}" [(set_attr "type" "ssemov") (set_attr "prefix_extra" "1") (set_attr "prefix" "maybe_vex") @@ -9784,7 +9784,7 @@ (const_int 2) (const_int 3)]))))] "TARGET_AVX2" - "vpmov<extsuffix>wq\t{%1, %0|%0, %1}" + "vpmov<extsuffix>wq\t{%1, %0|%0, %q1}" [(set_attr "type" "ssemov") (set_attr "prefix_extra" "1") (set_attr "prefix" "vex") @@ -9798,7 +9798,7 @@ (parallel [(const_int 0) (const_int 1)]))))] "TARGET_SSE4_1" - "%vpmov<extsuffix>wq\t{%1, %0|%0, %1}" + "%vpmov<extsuffix>wq\t{%1, %0|%0, %k1}" [(set_attr "type" "ssemov") (set_attr "prefix_extra" "1") (set_attr "prefix" "maybe_vex") @@ -9822,7 +9822,7 @@ (parallel [(const_int 0) (const_int 1)]))))] "TARGET_SSE4_1" - "%vpmov<extsuffix>dq\t{%1, %0|%0, %1}" + "%vpmov<extsuffix>dq\t{%1, %0|%0, %q1}" [(set_attr "type" "ssemov") (set_attr "prefix_extra" "1") (set_attr "prefix" "maybe_vex") |