mirror of
https://github.com/KolibriOS/kolibrios.git
synced 2024-12-24 23:56:49 +03:00
49cb0f914d
devman: scan pci root bus git-svn-id: svn://kolibrios.org@1627 a494cfbc-eb01-0410-851d-a64ba20cac60
28 lines
772 B
ArmAsm
28 lines
772 B
ArmAsm
/* bcmp() Author: Kees J. Bot */
|
|
/* 2 Jan 1994 */
|
|
|
|
/* int bcmp(const void *s1, const void *s2, size_t n) */
|
|
/* Compare two chunks of memory. */
|
|
/* This is a BSD routine that escaped from the kernel. Don't use. */
|
|
/* (Alas it is not without some use, it reports the number of bytes */
|
|
/* after the bytes that are equal. So it can't be simply replaced.) */
|
|
/* */
|
|
#include "asm.h"
|
|
|
|
ENTRY(bcmp)
|
|
push %ebp
|
|
movl %esp, %ebp
|
|
push 16(%ebp)
|
|
push 12(%ebp)
|
|
push 8(%ebp)
|
|
call _C_LABEL(memcmp) /* Let memcmp do the work */
|
|
testl %eax, %eax
|
|
je equal
|
|
subl 8(%ebp), %edx /* Memcmp was nice enough to leave "esi" in edx */
|
|
decl %edx /* Number of bytes that are equal */
|
|
movl 16(%ebp), %eax
|
|
subl %edx, %eax /* Number of bytes that are unequal */
|
|
equal:
|
|
leave
|
|
ret
|