diff options
author | Uros Bizjak <uros@gcc.gnu.org> | 2008-05-04 20:40:15 +0200 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2008-05-04 20:40:15 +0200 |
commit | 62d2739afd9e0b8cea92edae521222930b67743d (patch) | |
tree | 8c5bdf0a7bcb02628efde25f30b91e69f91989bc /gcc | |
parent | 4d31c3e1cb354eab0b861e8ba90e9f98e3f7f402 (diff) | |
download | gcc-62d2739afd9e0b8cea92edae521222930b67743d.zip gcc-62d2739afd9e0b8cea92edae521222930b67743d.tar.gz gcc-62d2739afd9e0b8cea92edae521222930b67743d.tar.bz2 |
i386.md (*strmovsi_1): Simplify asm alternatives.
* config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
(*strmovsi_rex_1): Ditto.
(*strsetsi_1): Ditto.
(*strsetsi_rex_1): Ditto.
(add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
adddicc expanders using SWI mode iterator.
From-SVN: r134933
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 70 | ||||
-rw-r--r-- | gcc/config/i386/i386.md | 40 |
2 files changed, 44 insertions, 66 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0e91e21..5017016 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,8 +1,18 @@ +2008-05-04 Uros Bizjak <ubizjak@gmail.com> + + * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives. + (*strmovsi_rex_1): Ditto. + (*strsetsi_1): Ditto. + (*strsetsi_rex_1): Ditto. + + (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and + adddicc expanders using SWI mode iterator. + 2008-05-04 H.J. Lu <hongjiu.lu@intel.com> PR target/36121 - * config/i386/i386.c (ix86_expand_special_args_builtin): Remove - 3 argument handling. + * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three + argument handling. 2008-05-04 David S. Miller <davem@davemloft.net> @@ -243,31 +253,26 @@ 2008-04-30 Nathan Froyd <froydnj@codesourcery.com> - * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm, - config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm, - config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out - from... - * config/rs6000/crtsavres.asm: ...here. Remove unneeded file. - * config/rs6000/e500crtres32gpr.asm, - config/rs6000/e500crtres64gpr.asm - config/rs6000/e500crtres64gprctr.asm, - config/rs6000/e500crtrest32gpr.asm - config/rs6000/e500crtrest64gpr.asm, - config/rs6000/e500crtresx32gpr.asm - config/rs6000/e500crtresx64gpr.asm, - config/rs6000/e500crtsav32gpr.asm - config/rs6000/e500crtsav64gpr.asm, - config/rs6000/e500crtsav64gprctr.asm - config/rs6000/e500crtsavg32gpr.asm, - config/rs6000/e500crtsavg64gpr.asm - config/rs6000/e500crtsavg64gprctr.asm: New files. - * config/rs6000/t-ppccomm: Add build rules for new files. - (LIB2FUNCS_STATIC_EXTRA): Add new files. - * config/rs6000/t-netbsd: Add build rules for new files. - (LIB2FUNCS_STATIC_EXTRA): New variable. - * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o - (CRTSAVRES_DEFAULT_SPEC): Likewise. - * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise. + * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm, + config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm, + config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out + from... + * config/rs6000/crtsavres.asm: ...here. Remove unneeded file. + * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm, + config/rs6000/e500crtres64gprctr.asm, + config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm, + config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm, + config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm, + config/rs6000/e500crtsav64gprctr.asm, + config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm, + config/rs6000/e500crtsavg64gprctr.asm: New files. + * config/rs6000/t-ppccomm: Add build rules for new files. + (LIB2FUNCS_STATIC_EXTRA): Add new files. + * config/rs6000/t-netbsd: Add build rules for new files. + (LIB2FUNCS_STATIC_EXTRA): New variable. + * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o + (CRTSAVRES_DEFAULT_SPEC): Likewise. + * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise. 2008-04-30 H.J. Lu <hongjiu.lu@intel.com> @@ -297,8 +302,7 @@ (ix86_expand_args_builtin): Updated. Take a pointer to const struct builtin_description. Handle comparison builtin functions. - (ix86_expand_sse_compare): Take a new argument for swapping - operands. + (ix86_expand_sse_compare): Take a new argument for swapping operands. (ix86_expand_builtin): Updated. * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ... @@ -306,10 +310,9 @@ (ssse3_pmaddubswv4hi3): Renamed to ... (ssse3_pmaddubsw): This. - * doc/extend.texi (__builtin_ia32_packsswb128): Correct - prototype. + * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype. (__builtin_ia32_packssdw128): Likewise. - )__builtin_ia32_packuswb128): Likewise. + (__builtin_ia32_packuswb128): Likewise. (__builtin_ia32_pmaddubsw): Likewise. (__builtin_ia32_pmaddubsw128): Likewise. @@ -935,8 +938,7 @@ 2008-04-25 H.J. Lu <hongjiu.lu@intel.com> - * config/i386/sse.md (mov<mode>): Replace SSEMODEI with - SSEMODE. + * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE. (*mov<mode>_internal): Likewise. Support V4SF and V2DF. (mov<mode>): Removed. (*movv4sf_internal): Likewise. diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index a68c7ec..a150b9b 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -18476,7 +18476,7 @@ (plus:SI (match_dup 3) (const_int 4)))] "!TARGET_64BIT && (TARGET_SINGLE_STRINGOP || optimize_size)" - "{movsl|movsd}" + "movs{l|d}" [(set_attr "type" "str") (set_attr "mode" "SI") (set_attr "memory" "both")]) @@ -18491,7 +18491,7 @@ (plus:DI (match_dup 3) (const_int 4)))] "TARGET_64BIT && (TARGET_SINGLE_STRINGOP || optimize_size)" - "{movsl|movsd}" + "movs{l|d}" [(set_attr "type" "str") (set_attr "mode" "SI") (set_attr "memory" "both")]) @@ -18747,7 +18747,7 @@ (plus:SI (match_dup 1) (const_int 4)))] "!TARGET_64BIT && (TARGET_SINGLE_STRINGOP || optimize_size)" - "{stosl|stosd}" + "stos{l|d}" [(set_attr "type" "str") (set_attr "memory" "store") (set_attr "mode" "SI")]) @@ -18759,7 +18759,7 @@ (plus:DI (match_dup 1) (const_int 4)))] "TARGET_64BIT && (TARGET_SINGLE_STRINGOP || optimize_size)" - "{stosl|stosd}" + "stos{l|d}" [(set_attr "type" "str") (set_attr "memory" "store") (set_attr "mode" "SI")]) @@ -19561,38 +19561,14 @@ operands[1], operands[0]);") ;; Conditional addition patterns -(define_expand "addqicc" - [(match_operand:QI 0 "register_operand" "") +(define_expand "add<mode>cc" + [(match_operand:SWI 0 "register_operand" "") (match_operand 1 "comparison_operator" "") - (match_operand:QI 2 "register_operand" "") - (match_operand:QI 3 "const_int_operand" "")] + (match_operand:SWI 2 "register_operand" "") + (match_operand:SWI 3 "const_int_operand" "")] "" "if (ix86_expand_int_addcc (operands)) DONE; else FAIL;") -(define_expand "addhicc" - [(match_operand:HI 0 "register_operand" "") - (match_operand 1 "comparison_operator" "") - (match_operand:HI 2 "register_operand" "") - (match_operand:HI 3 "const_int_operand" "")] - "" - "if (ix86_expand_int_addcc (operands)) DONE; else FAIL;") - -(define_expand "addsicc" - [(match_operand:SI 0 "register_operand" "") - (match_operand 1 "comparison_operator" "") - (match_operand:SI 2 "register_operand" "") - (match_operand:SI 3 "const_int_operand" "")] - "" - "if (ix86_expand_int_addcc (operands)) DONE; else FAIL;") - -(define_expand "adddicc" - [(match_operand:DI 0 "register_operand" "") - (match_operand 1 "comparison_operator" "") - (match_operand:DI 2 "register_operand" "") - (match_operand:DI 3 "const_int_operand" "")] - "TARGET_64BIT" - "if (ix86_expand_int_addcc (operands)) DONE; else FAIL;") - ;; Misc patterns (?) |