Subversion Repositories planix.SVN

Rev

Rev 2 | Blame | Compare with Previous | Last modification | View Log | RSS feed

        TEXT    memcmp(SB),$0

        MOVL    n+8(FP), BX
        CMPL    BX, $0
        JEQ     none
        MOVL    p1+0(FP), DI
        MOVL    p2+4(FP), SI
        CLD
/*
 * first by longs
 */

        MOVL    BX, CX
        SHRL    $2, CX

        REP;    CMPSL
        JNE     found

/*
 * then by bytes
 */
        ANDL    $3, BX
        MOVL    BX, CX
        REP;    CMPSB
        JNE     found1

none:
        MOVL    $0, AX
        RET

/*
 * if long found,
 * back up and look by bytes
 */
found:
        MOVL    $4, CX
        SUBL    CX, DI
        SUBL    CX, SI
        REP;    CMPSB

found1:
        JLS     lt
        MOVL    $-1, AX
        RET
lt:
        MOVL    $1, AX
        RET

Generated by GNU Enscript 1.6.6.