ldreqd instruction in xscale
Phil Blundell
pb@nexus.co.uk
Fri Jan 25 08:10:00 GMT 2002
On Fri, 2002-01-25 at 15:22, Arvind Krishnaswamy wrote:
> The following are the first few lines of the strlen function (both
> arm-elf-gcc and xscale-elf-gcc were used with the -march=armv4t)
> Is it because strlen comes from the libraries and that was probably
> compiled without the switch? If so is there some way by which I can avoid
> this?
Yeah, or strlen might even be written in assembler. In any case this
seems like a library issue: you need to either reconfigure or recompile
your library with the appropriate flags.
> 0000cc20 <strlen>:
> cc20: e52de004 str lr, [sp, -#4]!
> cc24: e3100003 tst r0, #3 ; 0x3
> 0001062c <strlen>:
> 1062c: e3100003 tst r0, #3 ; 0x3
> 10630: e92d40f0 stmdb sp!, {r4, r5, r6, r7, lr}
Assuming these did actually come from the same source code, it's mildly
interesting that the xscale version has spilled an extra four registers.
p.
More information about the Gcc
mailing list