This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Modifying ARM code generator for elimination of 8bit writes - need help


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]