diff options
| author | faissaloo <faissaloo@gmail.com> | 2016-07-25 10:43:50 +0100 |
|---|---|---|
| committer | faissaloo <faissaloo@gmail.com> | 2016-07-25 10:43:50 +0100 |
| commit | 2601b8ee61315a8faac65ded8950cebf168f83c2 (patch) | |
| tree | 0da1310bd4d76454b9cf1d40be159654fa6c1678 | |
| parent | b170a6bcb443f6e7ac045de38aef3da78be179a6 (diff) | |
| download | dbsh-2601b8ee61315a8faac65ded8950cebf168f83c2.tar.gz | |
Faster strlen
| -rwxr-xr-x | sh | bin | 1688 -> 1688 bytes | |||
| -rw-r--r-- | sh.asm | 18 |
2 files changed, 9 insertions, 9 deletions
| Binary files differ @@ -318,15 +318,15 @@ _parse7: ; absolute path ;input: r12 (return address), r15 (buffer) ;output: r8 (length) _strlen: - xor r8, r8 - -_strlen1: - cmp byte [r8+r15], 0x0 - je _parse1 - cmp byte [r8+r15], 0xa - je _parse1 - inc r8 - jmp _strlen1 + mov r8, -17 ;We're always going to have to take 1 away because of the newline + xchg rsi, rcx ;bacup rcx, let rsi get clobbered + _strlen1: + add r8, 16 + PcmpIstrI xmm0, [r15+r8],0 + jnz _strlen1 + add r8, rcx + xchg rsi,rcx + jmp _parse1 ; input: rcx (a), r13 (b) ; output: rbx (string) |
