1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
#include "DEFS.h" ENTRY(bcmp) RETGUARD_SETUP(bcmp, r11) xorl %eax,%eax /* clear return value */ cld /* set compare direction forward */ 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 END_WEAK(bcmp)