aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorUros Bizjak <uros@gcc.gnu.org>2010-04-09 23:12:42 +0200
committerUros Bizjak <uros@gcc.gnu.org>2010-04-09 23:12:42 +0200
commitef0f4a034d93e79a27c570aaff6a6b7180f4b0c2 (patch)
treee4a1b080813e247d1dfc3ec6881a358dc0ab572f /gcc
parentadd5d9980add8cddbfb8079a800e11b1ec640761 (diff)
downloadgcc-ef0f4a034d93e79a27c570aaff6a6b7180f4b0c2.zip
gcc-ef0f4a034d93e79a27c570aaff6a6b7180f4b0c2.tar.gz
gcc-ef0f4a034d93e79a27c570aaff6a6b7180f4b0c2.tar.bz2
re PR target/43707 (gcc.c-torture/execute/ashldi-1.c)
PR target/43707 PR target/43709 * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn and splitter pattern. Change splitter operand 1 predicate to nonmemory_operand. From-SVN: r158177
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog19
-rw-r--r--gcc/config/i386/i386.md14
2 files changed, 23 insertions, 10 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1c57d04..74c2c32 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2010-04-09 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/43707
+ PR target/43709
+ * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
+ and splitter pattern. Change splitter operand 1 predicate to
+ nonmemory_operand.
+
2010-04-09 Martin Jambor <mjambor@suse.cz>
* ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
@@ -6,7 +14,7 @@
* ipa-prop.c (ipa_print_node_jump_functions): Likewise.
2010-04-09 Eric Botcazou <ebotcazou@adacore.com>
- Bernd Schmidt <bernd.schmidt@codesourcery.com>
+ Bernd Schmidt <bernd.schmidt@codesourcery.com>
* loop-invariant.c (replace_uses): New static function.
(move_invariant_reg): Use it to ensure we can replace the uses.
@@ -37,8 +45,7 @@
2010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
- * config/sparc/sol2-gld.h: Remove SPARC reference.
- Rename ...
+ * config/sparc/sol2-gld.h: Remove SPARC reference. Rename ...
* config/sol2-gld.h: ... here.
* config.gcc (sparc*-*-solaris2*): Reflect this.
(i[34567]86-*-solaris2*): Use it.
@@ -80,15 +87,15 @@
2010-04-09 Iain Sandoe <iains@gcc.gnu.org>
PR bootstrap/43684
- * varasm.c (default_assemble_visibility): Wrap vars that are
+ * varasm.c (default_assemble_visibility): Wrap vars that are
set, but unused, by targets without GAS.
- * config/rs6000/rs6000.c: (paired_emit_vector_compare):
+ * config/rs6000/rs6000.c: (paired_emit_vector_compare):
Remove set, but unused, vars.
(rs6000_legitimize_tls_address): Likewise.
(altivec_expand_dst_builtin): Likewise.
* config/darwin.c (machopic_classify_symbol): Likewise.
(machopic_indirection_name): Likewise.
-
+
2010-04-09 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (DWI): New mode iterator.
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index b53c01d..25daeff 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -9560,17 +9560,23 @@
""
"ix86_expand_binary_operator (ASHIFT, <MODE>mode, operands); DONE;")
-(define_insn_and_split "*ashl<mode>3_doubleword"
+(define_insn "*ashl<mode>3_doubleword"
[(set (match_operand:DWI 0 "register_operand" "=&r,r")
(ashift:DWI (match_operand:DWI 1 "reg_or_pm1_operand" "n,0")
(match_operand:QI 2 "nonmemory_operand" "<S>c,<S>c")))
(clobber (reg:CC FLAGS_REG))]
- "ix86_binary_operator_ok (ASHIFT, <MODE>mode, operands)"
+ ""
"#"
+ [(set_attr "type" "multi")])
+
+(define_split
+ [(set (match_operand:DWI 0 "register_operand" "")
+ (ashift:DWI (match_operand:DWI 1 "nonmemory_operand" "")
+ (match_operand:QI 2 "nonmemory_operand" "")))
+ (clobber (reg:CC FLAGS_REG))]
"(optimize && flag_peephole2) ? epilogue_completed : reload_completed"
[(const_int 0)]
- "ix86_split_ashl (operands, NULL_RTX, <MODE>mode); DONE;"
- [(set_attr "type" "multi")])
+ "ix86_split_ashl (operands, NULL_RTX, <MODE>mode); DONE;")
;; By default we don't ask for a scratch register, because when DWImode
;; values are manipulated, registers are already at a premium. But if