Lines Matching refs:the
13 an optimised path for large data sets; the worst case is finding the
47 and r1,r1,#0xff @ Don't think we can trust the caller to actually pass a char
52 tst r0, #7 @ If it's already aligned skip the next bit
67 orr r1, r1, r1, lsl #8 @ expand the match word across to all bytes
76 eor r5,r5, r1 @ Get it so that r5,r6 have 00's where the bytes match the target
78 uadd8 r5, r5, r7 @ Parallel add 0xff - sets the GE bits for anything that wasn't 0
80 uadd8 r6, r6, r7 @ Parallel add 0xff - sets the GE bits for anything that wasn't 0
83 bne 15b @ (Flags from the subs above) If not run out of bytes then go around again
86 and r1,r1,#0xff @ Get r1 back to a single character from the expansion above
87 and r2,r2,#7 @ Leave the count remaining as the number after the double words have been done
90 cbz r2, 40f @ 0 length or hit the end already then not found
107 60: @ We're here because the fast path found a hit - now we have to track down exactly which word it was
108 @ r0 points to the start of the double word after the one that was tested
109 @ r5 has the 00/ff pattern for the first word, r6 has the chained value
112 moveq r5, r6 @ the end is in the 2nd word
116 @ r0 currently points to the 3rd byte of the word containing the hit
124 @ If not the 3rd must be the last one