Richard, I suppose you mean the problem is in this define_insn:
(define_insn "*thumb1_ashlsi3" [(set (match_operand:SI 0 "register_operand" "=l,l") (ashift:SI (match_operand:SI 1 "register_operand" "l,0") (match_operand:SI 2 "nonmemory_operand" "N,l")))] "TARGET_THUMB1" "lsl\\t%0, %1, %2" [(set_attr "length" "2") (set_attr "conds" "set")])
which should set "length" depending on the operands?
(BTW when should ARM_LSL_NAME be used instead of "lsl"? Or is ARM_LSL_NAME not relevant for Thumb?)
Richard, I suppose you mean the problem is in this define_insn:
(define_insn "*thumb1_ashlsi3"
(match_ operand: SI 2 "nonmemory_operand" "N,l")))]
[(set (match_operand:SI 0 "register_operand" "=l,l")
(ashift:SI (match_operand:SI 1 "register_operand" "l,0")
"TARGET_THUMB1"
"lsl\\t%0, %1, %2"
[(set_attr "length" "2")
(set_attr "conds" "set")])
which should set "length" depending on the operands?
(BTW when should ARM_LSL_NAME be used instead of "lsl"? Or is ARM_LSL_NAME not relevant for Thumb?)