1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
#include <machine/asm.h> ENTRY(bcmp) RETGUARD_SETUP(bcmp, r11) xorl %eax,%eax /* clear return value */ movq %rdx,%rcx /* compare by words */ shrq $3,%rcx repe cmpsq jne L1 movq %rdx,%rcx /* compare remainder by bytes */ andq $7,%rcx repe cmpsb je L2 L1: incl %eax L2: RETGUARD_CHECK(bcmp, r11) ret