On Wed, May 31, 2006 at 10:49:35PM +0200, Wolfgang Mües wrote:

> > (define_insn "*arm_movqi_insn"
> >   [(set (match_operand:QI 0 "nonimmediate_operand" "=r,r,r,m")
> >     (match_operand:QI 1 "general_operand" "rI,K,m,r"))]
> >   "TARGET_ARM
> >    && (   register_operand (operands[0], QImode)
> >
> >        || register_operand (operands[1], QImode))"
> >
> >   "@
> >    mov%?\\t%0, %1
> >    mvn%?\\t%0, #%B1
> >    ldr%?b\\t%0, %1
> >    str%?b\\t%1, %0"
> >   [(set_attr "type" "*,*,load1,store1")
> >    (set_attr "predicable" "yes")]
> > )

I think you should go back to this (i.e. the unmodified version) and only
change the "m" into "Q" in the fourth alternative of operand 0. See if that
works, i.e. generates addresses that are valid for the swp instruction. If
it does, then begin to add other changes.

-- 
Rask Ingemann Lambertsen

Reply via email to