0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #include <asm/ppc_asm.h>
0011 #include <asm/export.h>
0012
0013 .text
0014
0015 _GLOBAL(memcmp)
0016 srawi. r7, r5, 2
0017 mr r6, r3
0018 beq- 3f
0019 mtctr r7
0020 li r7, 0
0021 1: lwzx r3, r6, r7
0022 lwzx r0, r4, r7
0023 addi r7, r7, 4
0024 cmplw cr0, r3, r0
0025 bdnzt eq, 1b
0026 bne 5f
0027 3: andi. r3, r5, 3
0028 beqlr
0029 cmplwi cr1, r3, 2
0030 blt- cr1, 4f
0031 lhzx r3, r6, r7
0032 lhzx r0, r4, r7
0033 addi r7, r7, 2
0034 subf. r3, r0, r3
0035 beqlr cr1
0036 bnelr
0037 4: lbzx r3, r6, r7
0038 lbzx r0, r4, r7
0039 subf. r3, r0, r3
0040 blr
0041 5: li r3, 1
0042 bgtlr
0043 li r3, -1
0044 blr
0045 EXPORT_SYMBOL(memcmp)