OpenCores
URL https://opencores.org/ocsvn/or1k_soc_on_altera_embedded_dev_kit/or1k_soc_on_altera_embedded_dev_kit/trunk

Subversion Repositories or1k_soc_on_altera_embedded_dev_kit

[/] [or1k_soc_on_altera_embedded_dev_kit/] [trunk/] [linux-2.6/] [linux-2.6.24/] [arch/] [sparc/] [lib/] [strncmp.S] - Rev 3

Compare with Previous | Blame | View Log

/* $Id: strncmp.S,v 1.2 1996/09/09 02:47:20 davem Exp $
 * strncmp.S: Hand optimized Sparc assembly of GCC output from GNU libc
 *            generic strncmp routine.
 */

        .text
        .align 4
        .global __strncmp, strncmp
__strncmp:
strncmp:
        mov     %o0, %g3
        mov     0, %o3

        cmp     %o2, 3
        ble     7f
         mov    0, %g2

        sra     %o2, 2, %o4
        ldub    [%g3], %o3

0:
        ldub    [%o1], %g2
        add     %g3, 1, %g3
        and     %o3, 0xff, %o0

        cmp     %o0, 0
        be      8f
         add    %o1, 1, %o1

        cmp     %o0, %g2
        be,a    1f
         ldub   [%g3], %o3

        retl
         sub    %o0, %g2, %o0

1:
        ldub    [%o1], %g2
        add     %g3,1, %g3
        and     %o3, 0xff, %o0

        cmp     %o0, 0
        be      8f
         add    %o1, 1, %o1

        cmp     %o0, %g2
        be,a    1f
         ldub   [%g3], %o3

        retl
         sub    %o0, %g2, %o0

1:
        ldub    [%o1], %g2
        add     %g3, 1, %g3
        and     %o3, 0xff, %o0

        cmp     %o0, 0
        be      8f
         add    %o1, 1, %o1

        cmp     %o0, %g2
        be,a    1f
         ldub   [%g3], %o3

        retl
         sub    %o0, %g2, %o0

1:
        ldub    [%o1], %g2
        add     %g3, 1, %g3
        and     %o3, 0xff, %o0

        cmp     %o0, 0
        be      8f
         add    %o1, 1, %o1

        cmp     %o0, %g2
        be      1f
         add    %o4, -1, %o4

        retl
         sub    %o0, %g2, %o0

1:

        cmp     %o4, 0
        bg,a    0b
         ldub   [%g3], %o3

        b       7f
         and    %o2, 3, %o2

9:
        ldub    [%o1], %g2
        add     %g3, 1, %g3
        and     %o3, 0xff, %o0

        cmp     %o0, 0
        be      8f
         add    %o1, 1, %o1

        cmp     %o0, %g2
        be      7f
         add    %o2, -1, %o2

8:
        retl
         sub    %o0, %g2, %o0

7:
        cmp     %o2, 0
        bg,a    9b
         ldub   [%g3], %o3

        and     %g2, 0xff, %o0
        retl
         sub    %o3, %o0, %o0

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.