rs6000.md (bswapsi2): New define_insn and splitter.
2007-02-18 David Edelsohn <edelsohn@gnu.org> Roger Sayle <roger@eyesopen.com> * config/rs6000/rs6000.md (bswapsi2): New define_insn and splitter. Co-Authored-By: Roger Sayle <roger@eyesopen.com> From-SVN: r122104
This commit is contained in:
parent
61a04b5b59
commit
03f79051ae
2 changed files with 32 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
|||
2007-02-18 David Edelsohn <edelsohn@gnu.org>
|
||||
Roger Sayle <roger@eyesopen.com>
|
||||
|
||||
* config/rs6000/rs6000.md (bswapsi2): New define_insn and splitter.
|
||||
|
||||
2007-02-18 Sandra Loosemore <sandra@codesourcery.com>
|
||||
|
||||
* calls.c (initialize_argument_information): Pass original EXP
|
||||
|
|
|
@ -2186,6 +2186,33 @@
|
|||
DONE;
|
||||
})
|
||||
|
||||
(define_insn "bswapsi2"
|
||||
[(set (match_operand:SI 0 "reg_or_mem_operand" "=r,Z,&r")
|
||||
(bswap:SI (match_operand:SI 1 "reg_or_mem_operand" "Z,r,r")))]
|
||||
""
|
||||
"@
|
||||
{lbrx|lwbrx} %0,%y1
|
||||
{stbrx|stwbrx} %1,%y0
|
||||
#"
|
||||
[(set_attr "length" "4,4,12")])
|
||||
|
||||
(define_split
|
||||
[(set (match_operand:SI 0 "gpc_reg_operand" "")
|
||||
(bswap:SI (match_operand:SI 1 "gpc_reg_operand" "")))]
|
||||
"reload_completed"
|
||||
[(set (match_dup 0)
|
||||
(rotate:SI (match_dup 1) (const_int 8)))
|
||||
(set (zero_extract:SI (match_dup 0)
|
||||
(const_int 8)
|
||||
(const_int 0))
|
||||
(match_dup 1))
|
||||
(set (zero_extract:SI (match_dup 0)
|
||||
(const_int 8)
|
||||
(const_int 16))
|
||||
(rotate:SI (match_dup 1)
|
||||
(const_int 16)))]
|
||||
"")
|
||||
|
||||
(define_expand "mulsi3"
|
||||
[(use (match_operand:SI 0 "gpc_reg_operand" ""))
|
||||
(use (match_operand:SI 1 "gpc_reg_operand" ""))
|
||||
|
|
Loading…
Add table
Reference in a new issue