]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/powerpc/boot/string.S
Merge git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm
[linux-2.6-omap-h63xx.git] / arch / powerpc / boot / string.S
index ac3d43b6a324c97549d8c181e2896ee2f41d377f..acc9428f27897d80db4cd65430fedf1069adbe6c 100644 (file)
@@ -49,6 +49,17 @@ strcat:
        bne     1b
        blr
 
+       .globl  strchr
+strchr:
+       addi    r3,r3,-1
+1:     lbzu    r0,1(r3)
+       cmpw    0,r0,r4
+       beqlr
+       cmpwi   0,r0,0
+       bne     1b
+       li      r3,0
+       blr
+
        .globl  strcmp
 strcmp:
        addi    r5,r3,-1
@@ -61,6 +72,19 @@ strcmp:
        beq     1b
        blr
 
+       .globl  strncmp
+strncmp:
+       mtctr   r5
+       addi    r5,r3,-1
+       addi    r4,r4,-1
+1:     lbzu    r3,1(r5)
+       cmpwi   1,r3,0
+       lbzu    r0,1(r4)
+       subf.   r3,r0,r3
+       beqlr   1
+       bdnzt   eq,1b
+       blr
+
        .globl  strlen
 strlen:
        addi    r4,r3,-1
@@ -195,10 +219,23 @@ backwards_memcpy:
        mtctr   r7
        b       1b
 
+       .globl  memchr
+memchr:
+       cmpwi   0,r5,0
+       blelr
+       mtctr   r5
+       addi    r3,r3,-1
+1:     lbzu    r0,1(r3)
+       cmpw    r0,r4
+       beqlr
+       bdnz    1b
+       li      r3,0
+       blr
+
        .globl  memcmp
 memcmp:
        cmpwi   0,r5,0
-       blelr
+       ble     2f
        mtctr   r5
        addi    r6,r3,-1
        addi    r4,r4,-1
@@ -207,6 +244,8 @@ memcmp:
        subf.   r3,r0,r3
        bdnzt   2,1b
        blr
+2:     li      r3,0
+       blr
 
 
 /*