summaryrefslogtreecommitdiff
path: root/sysdeps/x86_64/rtld-strcmp.S
blob: a25535c161ab0bf3742d9a09049ed94ff6561bd9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <sysdep.h>
#include "asm-syntax.h"
#include "bp-sym.h"
#include "bp-asm.h"

#ifndef LABEL
#define LABEL(l) L(l)
#endif

	.text
ENTRY (BP_SYM (STRCMP))
/* Simple version since we can't use SSE registers in ld.so.  */
L(oop):	movb	(%rdi), %al
	cmpb	(%rsi), %al
	jne	L(neq)
	incq	%rdi
	incq	%rsi
	testb	%al, %al
	jnz	L(oop)

	xorl	%eax, %eax
	ret

L(neq):	movl	$1, %eax
	movl	$-1, %ecx
	cmovbl	%ecx, %eax
	ret
END (BP_SYM (STRCMP))