e300 (MPC5121) dlmzb
Kumar Gala
galak at kernel.crashing.org
Sat Sep 26 02:34:17 EST 2009
On Sep 25, 2009, at 4:07 AM, Fortini Matteo wrote:
> I was trying to insert an optimized strlen() function using the
> following code taken from the ibm site on an MPC5121, but it crashes
> the kernel.
> Is it because it's an unsupported op, or because I'm missing some
> needed steps?
>
> Thank you,
> Matteo
>
> _GLOBAL(strlen)
> addi r4,0,8 // Load byte count of 8
> mtxer r4 // Set byte count for load string
> xor r4,r4,r4 // r4 = 0, r4 == accumulator
> 1:
> lswx r5,r3,r4 // load string into r5 & r6
> dlmzb. r12,r5,r6 // find NULL byte and record in r7.
> add r4,r4,r12 // Update accumulator.
> beq 1b // Loop if NULL not found.
> addi r3,r4,-1 // Subtract 1 for NULL byte.
> blr // Return length
dlmzb. isn't supported on e300. I believe only 4xx supports it.
- k
More information about the Linuxppc-dev
mailing list