mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
625 B
45 lines
625 B
/* SPDX-License-Identifier: GPL-2.0 */ |
|
|
|
/* |
|
* memcmp for PowerPC32 |
|
* |
|
* Copyright (C) 1996 Paul Mackerras. |
|
* |
|
*/ |
|
|
|
#include <asm/ppc_asm.h> |
|
#include <asm/export.h> |
|
|
|
.text |
|
|
|
_GLOBAL(memcmp) |
|
srawi. r7, r5, 2 /* Divide len by 4 */ |
|
mr r6, r3 |
|
beq- 3f |
|
mtctr r7 |
|
li r7, 0 |
|
1: lwzx r3, r6, r7 |
|
lwzx r0, r4, r7 |
|
addi r7, r7, 4 |
|
cmplw cr0, r3, r0 |
|
bdnzt eq, 1b |
|
bne 5f |
|
3: andi. r3, r5, 3 |
|
beqlr |
|
cmplwi cr1, r3, 2 |
|
blt- cr1, 4f |
|
lhzx r3, r6, r7 |
|
lhzx r0, r4, r7 |
|
addi r7, r7, 2 |
|
subf. r3, r0, r3 |
|
beqlr cr1 |
|
bnelr |
|
4: lbzx r3, r6, r7 |
|
lbzx r0, r4, r7 |
|
subf. r3, r0, r3 |
|
blr |
|
5: li r3, 1 |
|
bgtlr |
|
li r3, -1 |
|
blr |
|
EXPORT_SYMBOL(memcmp)
|
|
|