e300 (MPC5121) dlmzb
Fortini Matteo
matteo.fortini at mta.it
Fri Sep 25 21:07:00 EST 2009
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
More information about the Linuxppc-dev
mailing list