File:  [DVB] / dietlibc / x86_64 / memcmp.S
Revision 1.5: download - view: text, annotated - select for diffs
Mon Oct 21 12:21:25 2019 UTC (4 years, 7 months ago) by leitner
Branches: MAIN
CVS tags: HEAD
  x86_64/memcmp.S optimization (Stefan Kanthak)

.text
.global memcmp
#ifdef __PIE__
.hidden memcmp
#endif
.type memcmp,@function
memcmp:	/* rdi=ptr1, esi=ptr2, rdx=bytes */
1:
  cmp $8,%rdx
  jb 1f
  mov (%rdi),%rax
  mov (%rsi),%rcx
  lea 8(%rdi),%rdi
  lea 8(%rsi),%rsi
  bswap %rax
  bswap %rcx
  cmp %rax,%rcx
  lea -8(%rdx),%rdx
  jz 1b
2:
  seta %ah
  setb %al
  sub %ah,%al
  movsbl %al,%eax
  ret
1:
  xor %eax,%eax
  mov %edx,%ecx
  repe cmpsb
  jmp 2b
1:
  ret

.Lhere:
.size memcmp,.Lhere-memcmp
	.section	.note.GNU-stack,"",@progbits

LinuxTV legacy CVS <linuxtv.org/cvs>