root/lib/libkern/arch/i386/bcmp.S

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. bcmp

    1 /*      $OpenBSD: bcmp.S,v 1.2 1996/09/27 06:47:44 mickey Exp $ */
    2 
    3 /*
    4  * Written by J.T. Conklin <jtc@netbsd.org>.
    5  * Public domain.
    6  */
    7 
    8 #include <machine/asm.h>
    9 
   10 ENTRY(bcmp)
   11         pushl   %edi
   12         pushl   %esi
   13         movl    12(%esp),%edi
   14         movl    16(%esp),%esi
   15         xorl    %eax,%eax               /* clear return value */
   16         cld                             /* set compare direction forward */
   17 
   18         movl    20(%esp),%ecx           /* compare by words */
   19         shrl    $2,%ecx
   20         repe
   21         cmpsl
   22         jne     L1
   23 
   24         movl    20(%esp),%ecx           /* compare remainder by bytes */
   25         andl    $3,%ecx
   26         repe
   27         cmpsb
   28         je      L2
   29 
   30 L1:     incl    %eax
   31 L2:     popl    %esi
   32         popl    %edi
   33         ret

/* [<][>][^][v][top][bottom][index][help] */