1*447c6881Stb/* $OpenBSD: bcmp.S,v 1.6 2022/12/04 08:22:13 tb Exp $ */ 2df930be7Sderaadt/* 3df930be7Sderaadt * Written by J.T. Conklin <jtc@netbsd.org>. 4df930be7Sderaadt * Public domain. 5df930be7Sderaadt */ 6df930be7Sderaadt 7ea6088e7Sguenther#include "DEFS.h" 8df930be7Sderaadt 9*447c6881StbENTRY_NB(bcmp) 10df930be7Sderaadt pushl %edi 11df930be7Sderaadt pushl %esi 12df930be7Sderaadt movl 12(%esp),%edi 13df930be7Sderaadt movl 16(%esp),%esi 14df930be7Sderaadt xorl %eax,%eax /* clear return value */ 15df930be7Sderaadt cld /* set compare direction forward */ 16df930be7Sderaadt 17df930be7Sderaadt movl 20(%esp),%ecx /* compare by words */ 18df930be7Sderaadt shrl $2,%ecx 19df930be7Sderaadt repe 20df930be7Sderaadt cmpsl 21df930be7Sderaadt jne L1 22df930be7Sderaadt 23df930be7Sderaadt movl 20(%esp),%ecx /* compare remainder by bytes */ 24df930be7Sderaadt andl $3,%ecx 25df930be7Sderaadt repe 26df930be7Sderaadt cmpsb 27df930be7Sderaadt je L2 28df930be7Sderaadt 29df930be7SderaadtL1: incl %eax 30df930be7SderaadtL2: popl %esi 31df930be7Sderaadt popl %edi 32df930be7Sderaadt ret 339b9d2a55SguentherEND_WEAK(bcmp) 34