Bueno aqui les dejo una implementacion de una strlen en XMM, en teoria tendria que ser muchisimo mas rapida que la strlen normal, pero no esta testeada.
i.section .text
.globl _start
_start:
pushq %r8
pushq %r9
pushq %r12
movq %r8, %r9
pxor %xmm1, %xmm1
_x0:
movdqu (%r8), %xmm0
pcmpeqb %xmm0, %xmm1
pmovmskb %xmm1, %r12d
addq $16, %r8
andl $0xffffffff, %r12d
jz _x0
bsf %r12d, %r12d
subq $16, %r8
subq %r9, %r8
addl %r12d, %r8d
popq %r12
popq %r9
popq %r8
Si tienen una CPU de 32 bits solamente cambien los registros, el puntero a la cadena es %r8.
Un saludo.