i386.md (ashlti3, [...]): Expand using ix86_expand_binary_operator directly.
authorUros Bizjak <ubizjak@gmail.com>
Fri, 27 Jun 2008 20:53:34 +0000 (22:53 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Fri, 27 Jun 2008 20:53:34 +0000 (22:53 +0200)
commit934f2a969d159429bd6bf4797e32a020089a103a
tree74ddc739701c825b6c78f6743d4b1ba4362cb632
parenta7235bfbb1bc521f11932a917de5ce70c69f821b
i386.md (ashlti3, [...]): Expand using ix86_expand_binary_operator directly.

* config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
ix86_expand_binary_operator directly.
(*ashlti3_1): Rename from ashlti3_1.  Use nonmemory_operand predicate
for operand 2.
(*ashrti3_1): Ditto.
(*lshrti3_1): Ditto.
(*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
(ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
using only one splitter.  Conditionaly execute splitter before or
after peephole2 pass.
(ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
(x86_shld): Rename from x86_shld_1.  Compress operand 2 constraints.
Use only one alternative in asm template.
(x86_64_shld): Compress operand 2 constraints. Use only one alternative
in asm template.
(*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
"J" operand constraint for operand 2.
(*ashldi3_cconly_rex64): Ditto.
(*ashrdi3_cmp_rex64): Ditto.
(*ashrdi3_cconly_rex64): Ditto.
(*lshrdi3_cmp_rex64): Ditto.
(*lshrdi3_cconly_rex64): Ditto.
* config/i386/predicates.md (const_1_to_63_operand): New predicate.
* config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
(split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
gen_x86_shrd_1.

From-SVN: r137201
gcc/ChangeLog
gcc/config/i386/i386.c
gcc/config/i386/i386.md
gcc/config/i386/predicates.md