1f5df1827Smickey#include <machine/asm.h> 2f5df1827Smickey 3f5df1827SmickeyENTRY(bcmp) 41d66f0a0Smortimer RETGUARD_SETUP(bcmp, r11) 5f5df1827Smickey xorl %eax,%eax /* clear return value */ 6f5df1827Smickey 7f5df1827Smickey movq %rdx,%rcx /* compare by words */ 8f5df1827Smickey shrq $3,%rcx 9f5df1827Smickey repe 10f5df1827Smickey cmpsq 11*5cd8e87fSguenther jne 1f 12f5df1827Smickey 13f5df1827Smickey movq %rdx,%rcx /* compare remainder by bytes */ 14f5df1827Smickey andq $7,%rcx 15f5df1827Smickey repe 16f5df1827Smickey cmpsb 17*5cd8e87fSguenther je 2f 18f5df1827Smickey 19*5cd8e87fSguenther1: incl %eax 20*5cd8e87fSguenther2: RETGUARD_CHECK(bcmp, r11) 211d66f0a0Smortimer ret 22fc541c5dSguenther lfence 23*5cd8e87fSguentherEND(bcmp) 24