h8300.md (*andsi3_lshiftrt_9_sb): New.
* config/h8300/h8300.md (*andsi3_lshiftrt_9_sb): New. (*iorsi3_and_lshiftrt_9_sb): Likewise. From-SVN: r61280
This commit is contained in:
parent
77f9af81d2
commit
4d77fda24b
|
@ -1,3 +1,8 @@
|
|||
2003-01-14 Kazu Hirata <kazu@cs.umass.edu>
|
||||
|
||||
* config/h8300/h8300.md (*andsi3_lshiftrt_9_sb): New.
|
||||
(*iorsi3_and_lshiftrt_9_sb): Likewise.
|
||||
|
||||
Tue Jan 14 00:45:33 CET 2003 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* convert.c (strip_float_extensions): Look for narrowest type handling
|
||||
|
|
|
@ -2616,6 +2616,24 @@
|
|||
[(set_attr "length" "8")
|
||||
(set_attr "cc" "clobber")])
|
||||
|
||||
(define_insn_and_split "*andsi3_lshiftrt_9_sb"
|
||||
[(set (match_operand:SI 0 "register_operand" "=r")
|
||||
(and:SI (lshiftrt:SI (match_operand:SI 1 "register_operand" "0")
|
||||
(const_int 9))
|
||||
(const_int 4194304)))]
|
||||
"(TARGET_H8300H || TARGET_H8300S)"
|
||||
"#"
|
||||
"&& reload_completed"
|
||||
[(set (match_dup 0)
|
||||
(and:SI (lshiftrt:SI (match_dup 0)
|
||||
(const_int 25))
|
||||
(const_int 64)))
|
||||
(parallel [(set (match_dup 0)
|
||||
(ashift:SI (match_dup 0)
|
||||
(const_int 16)))
|
||||
(clobber (scratch:QI))])]
|
||||
"")
|
||||
|
||||
;; plus:SI
|
||||
|
||||
(define_insn "*addsi3_upper"
|
||||
|
@ -2740,6 +2758,24 @@
|
|||
[(set_attr "length" "8")
|
||||
(set_attr "cc" "clobber")])
|
||||
|
||||
(define_insn "*iorsi3_and_lshiftrt_9_sb"
|
||||
[(set (match_operand:SI 0 "register_operand" "=r")
|
||||
(ior:SI (and:SI (lshiftrt:SI (match_operand:SI 1 "register_operand" "r")
|
||||
(const_int 9))
|
||||
(const_int 4194304))
|
||||
(match_operand:SI 2 "register_operand" "0")))
|
||||
(clobber (match_scratch:HI 3 "=&r"))]
|
||||
"(TARGET_H8300H || TARGET_H8300S)"
|
||||
"*
|
||||
{
|
||||
if (find_regno_note (insn, REG_DEAD, REGNO (operands[1])))
|
||||
return \"shll.l\\t%S1\;xor.w\\t%T3,%T3\;bst\\t#6,%s3\;or.w\\t%T3,%e0\";
|
||||
else
|
||||
return \"rotl.l\\t%S1\;rotr.l\\t%S1\;xor.w\\t%T3,%T3\;bst\\t#6,%s3\;or.w\\t%T3,%e0\";
|
||||
}"
|
||||
[(set_attr "length" "10")
|
||||
(set_attr "cc" "clobber")])
|
||||
|
||||
;; Used to OR the exponent of a float.
|
||||
|
||||
(define_insn "*iorsi3_shift"
|
||||
|
|
Loading…
Reference in New Issue