Hi,
I want to exclude all immediate or instruction. I did this by the following
define_insn
/------------------------------------------------------------------------------
(define_insn "iorsi3"
[(set (match_operand:SI 0 "register_operand" "=d,d")
(ior:SI (match_operand:SI 1 "uns_arith_operand" "%d,d")
(match_operand:SI 2 "uns_arith_operand" "d,K")))
(clobber (match_scratch:SI 3 ""))]
""
"@
or\\t%0,%1,%2
addi\\t%3,0x0,%x2\;or\\t%0,%1,%3"
[(set_attr "type" "arith")
(set_attr "mode" "SI")
(set_attr "length" "1,2")])
/------------------------------------------------------------------------------
I use a temporary register 3, to store intermediate values. but after
compilation the following error happen:
./libgcc2.c:669: internal error--unrecognizable insn:
(insn 787 786 780 (set (reg:SI 104)
(ior:SI (reg:SI 104)
(const_int 65535))) -1 (insn_list 786 (nil))
(expr_list:REG_EQUAL (const_int 16777215)
(nil)))
xgcc: Internal compiler error: program cc1 got fatal signal 6
make: *** [libgcc2.a] Error 1
//----------------------------------------------------------------------
I appreciate any help.
Bestr
--
View this message in context:
http://old.nabble.com/Question-about-Machine-Description-tp1026428p28790054.html
Sent from the gcc - Dev mailing list archive at Nabble.com.