Hi Richard, Thanks for the review. > (define_insn_and_split "*arm_cmpdi_unsigned" > [(set (reg:CC_CZ CC_REGNUM) > - (compare:CC_CZ (match_operand:DI 0 "s_register_operand" "r") > - (match_operand:DI 1 "arm_di_operand" "rDi")))] > + (compare:CC_CZ (match_operand:DI 0 "s_register_operand" "l,r,r") > + (match_operand:DI 1 "arm_di_operand" > "Py,r,rDi")))] > > > 'r' constraint for operand 1 on third alternative is now redundant.
The arch attribute for this pattern is set thusly: (set_attr "arch" "t2,t2,*") That is, the first two alternatives are not enabled for arm state, necessitating the 'r' constraint on the third one. If we enable the second alternative for arm as well (set_attr "arch" "t2,*,*") this will work, but the way I have it in this patch enables us to more accurately specify the length for Thumb mode. > > OK with the above issues fixed. Thanks, Kyrill > > R.