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:
Kazu Hirata 2003-01-14 13:11:24 +00:00 committed by Kazu Hirata
parent 77f9af81d2
commit 4d77fda24b
2 changed files with 41 additions and 0 deletions

View File

@ -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

View File

@ -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"