aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorUros Bizjak <uros@gcc.gnu.org>2008-05-04 20:40:15 +0200
committerUros Bizjak <uros@gcc.gnu.org>2008-05-04 20:40:15 +0200
commit62d2739afd9e0b8cea92edae521222930b67743d (patch)
tree8c5bdf0a7bcb02628efde25f30b91e69f91989bc /gcc
parent4d31c3e1cb354eab0b861e8ba90e9f98e3f7f402 (diff)
downloadgcc-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/ChangeLog70
-rw-r--r--gcc/config/i386/i386.md40
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 (?)