ldrb vs ldrh in gcc-3.4.4 (ARM)

Richard Earnshaw rearnsha@gcc.gnu.org
Wed Aug 17 14:36:00 GMT 2005


On Wed, 2005-08-17 at 15:18, Steven Scholz wrote:
> Lennert Buytenhek wrote:
> 
> > On Wed, Aug 17, 2005 at 04:00:23PM +0200, Steven Scholz wrote:
> > 
> > 
> >>Permissible names are: armv2, armv2a, armv3, armv3m, armv4, armv4t,
> >>                       armv5, armv5t, armv5te.
> >>
> >>Which one would be appropriate for an Atmel AT91RM9200?
> > 
> > 
> > First google hit on "AT91RM9200":
> > 	http://www.atmel.com/dyn/products/product_card.asp?part_id=2983
> > 
> > That page mentions that it's an ARM920T core.  First google hit on
> > "ARM920T":
> > 	http://www.arm.com/products/CPUs/ARM920T.html
> > 
> > That page mentions 'ARMv4T'.
> 
> Thanks for googling for me! ;-)
> 
> So I use either -march=armv4 _OR_ -mcpu=arm920t. Right?
> 
> (Using both brought me a warning about conflicting).

the arm920t is an armv4t device (the 't' is thumb).

Basically, there are two options, -march=xxx and -mtune=xxx that are
independent (one selects the available instructions, the other the best
way to use that set for the intended cpu).  -mcpu=xxx is shorthand that
can be used to set both options in one go: so -mcpu=xxx is equivalent to
writing -march=<arch_of(xxx)> -mtune=xxx.

Note that to get Thumb code you have to use -mthumb; it's not sufficient
to tell the compiler that you have thumb instructions available.

R.

------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com



More information about the crossgcc mailing list