>Hi All, > I am getting the error message bellow while hacking my gcc backend. >Any suggestions on how to fix this? > >error: insn does not satisfy its constraints: >(insn 25 50 26 2 (set (reg:HI 1 %r0 [33]) > (plus:HI (mem/s/j:HI (plus:HI (reg:HI 3 %r2) > (reg/v/f:HI 11 %i2h [orig:28 cell ] [28])) [0 ><variable>.dod S2 A8]) > (reg:HI 1 %r0 [43]))) 8 {*addhi3} (insn_list:REG_DEP_TRUE 3 >(insn_list:REG_DEP_TRUE 24 (nil))) > (nil)) >
Operand 0 is a register Operand 1 is a memory Operand 2 is a register > >The md description for this instruction is: > >;; addhi3 >(define_expand "addhi3" > [(set (match_operand:HI 0 "register_operand" "") > (plus:HI (match_operand:HI 1 "cool_addhi_operand" "") > (match_operand:HI 2 "cool_addhi_operand" "")))] > "" > "") > >(define_insn "*addhi3" > [(set (match_operand:HI 0 "register_operand" "=r ,r ,r") > (plus:HI (match_operand:HI 1 "cool_addhi_operand" "%0 ,rim,r") > (match_operand:HI 2 "cool_addhi_operand" "rim,0 ,r")))] > "" Do you have an option where operand 0 is reg and operand 1 is mem and operand 2 is reg? I am not sure what rim is for? Shafi -- View this message in context: http://www.nabble.com/insn-does-not-satisfy-its-constraints-tp19211080p19218836.html Sent from the gcc - Dev mailing list archive at Nabble.com.