i386.md (*strmovsi_1): Simplify asm alternatives.
authorUros Bizjak <uros@gcc.gnu.org>
Sun, 4 May 2008 18:40:15 +0000 (20:40 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Sun, 4 May 2008 18:40:15 +0000 (20:40 +0200)
        * 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

gcc/ChangeLog
gcc/config/i386/i386.md

index 0e91e217530ef999cbf3596d5e8ce8a541b02753..5017016cce4d8bdf8b296c386914b61d628f2710 100644 (file)
@@ -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
-       argument handling.
+       * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
+       argument handling.
 
 2008-05-04  David S. Miller  <davem@davemloft.net>
 
 
 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>
 
        (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 ...
        (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.
 
        
 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.
index a68c7ec3af8b32254560a3f4ce59cafb8406f7ce..a150b9bb49ab77baa15af3d06a2badc59c33b617 100644 (file)
        (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")])
        (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")])
        (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")])
        (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")])
                                 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;")
-
 \f
 ;; Misc patterns (?)