bfin.md (rotl16, [...]): New patterns.

* config/bfin/bfin.md (rotl16, rotlsi3, rotrsi3): New patterns.

From-SVN: r122377
This commit is contained in:
Bernd Schmidt 2007-02-27 15:26:19 +00:00 committed by Bernd Schmidt
parent 6ce986b971
commit 9713091585
2 changed files with 33 additions and 0 deletions

View File

@ -46,6 +46,8 @@
* config/bfin/bfin.c (bfin_output_mi_thunk): Use R3 as scratch reg
instead of R2.
* config/bfin/bfin.md (rotl16, rotlsi3, rotrsi3): New patterns.
2007-02-27 Andreas Schwab <schwab@suse.de>
* Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-common.texi.

View File

@ -1477,6 +1477,37 @@
%0 = %1 >>> %2%!"
[(set_attr "type" "shft,dsp32")])
(define_insn "rotl16"
[(set (match_operand:SI 0 "register_operand" "=d")
(rotate:SI (match_operand:SI 1 "register_operand" "d")
(const_int 16)))]
""
"%0 = PACK (%h1, %d1)%!"
[(set_attr "type" "dsp32")])
(define_expand "rotlsi3"
[(set (match_operand:SI 0 "register_operand" "")
(rotate:SI (match_operand:SI 1 "register_operand" "")
(match_operand:SI 2 "immediate_operand" "")))]
""
{
if (INTVAL (operands[2]) != 16)
FAIL;
})
(define_expand "rotrsi3"
[(set (match_operand:SI 0 "register_operand" "")
(rotatert:SI (match_operand:SI 1 "register_operand" "")
(match_operand:SI 2 "immediate_operand" "")))]
""
{
if (INTVAL (operands[2]) != 16)
FAIL;
emit_insn (gen_rotl16 (operands[0], operands[1]));
DONE;
})
(define_insn "ror_one"
[(set (match_operand:SI 0 "register_operand" "=d")
(ior:SI (lshiftrt:SI (match_operand:SI 1 "register_operand" "d") (const_int 1))