diff options
| author | Alexey Dobriyan <adobriyan@gmail.com> | 2011-12-11 21:13:19 +0300 | 
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2011-12-12 18:33:42 +0100 | 
| commit | 890890cb8e415e1e7a61bfe3c8e246f710196824 (patch) | |
| tree | a4694f6470484ebac1d82ed317fa5ce5c198006e /kernel/trace/trace_workqueue.c | |
| parent | 79f1ddd06471b094ae30eb17b33beb9f1234ca93 (diff) | |
x86/i386: Use less assembly in strlen(), speed things up a bit
Current i386 strlen() hardcodes NOT/DEC sequence. DEC is
mentioned to be suboptimal on Core2. So, put only REPNE SCASB
sequence in assembly, compiler can do the rest.
The difference in generated code is like below (MCORE2=y):
	<strlen>:
		push   %edi
		mov    $0xffffffff,%ecx
		mov    %eax,%edi
		xor    %eax,%eax
		repnz scas %es:(%edi),%al
		not    %ecx
	-	dec    %ecx
	-	mov    %ecx,%eax
	+	lea    -0x1(%ecx),%eax
		pop    %edi
		ret
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Jan Beulich <JBeulich@suse.com>
Link: http://lkml.kernel.org/r/20111211181319.GA17097@p183.telecom.by
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/trace/trace_workqueue.c')
0 files changed, 0 insertions, 0 deletions
