Annotation of cci/usr/src/usr.lib/libF77/s_cmp_s.s, revision 1.1

1.1     ! root        1: .data
        !             2: .text
        !             3: LL0:.align     1
        !             4: .globl _s_cmp
        !             5: .set   MASK__,0x1004
        !             6: .data
        !             7: .text
        !             8: _s_cmp:.word   MASK__
        !             9: movl   4(fp),r0                /* a */
        !            10: movl   8(fp),r1                /* b */
        !            11: movl   12(fp),r12              /* la */
        !            12: cmpl   r12,16(fp)              /* if (la <= lb) */
        !            13: jgtr   L17
        !            14: movl   r12, r2                 /* compare according to la */
        !            15: cmps3
        !            16: jeql   L2                      /* if not equal */
        !            17: 
        !            18: L20:
        !            19: cvtbl  (r0), r0                /* return(*a - *b) */
        !            20: cvtbl  (r1), r1
        !            21: subl2  r1,r0
        !            22: ret
        !            23: 
        !            24: L2:
        !            25: cmpl   r12,16(fp)              /* if (la == lb) */
        !            26: jneq   L50
        !            27: clrl   r0                      /* then strings are equal */
        !            28: ret
        !            29: 
        !            30: L50:
        !            31: addl3  8(fp), 16(fp), r12      /* r12 = bend */
        !            32: 
        !            33: L3:
        !            34: cmpb   (r1), $32               /* if *b != space */
        !            35: jeql   L4
        !            36: cvtbl  (r1), r1
        !            37: movl   $32, r0                 /* return(' ' - *b) */
        !            38: subl2  r1, r0
        !            39: ret
        !            40: 
        !            41: L4:                            /* else loop */
        !            42: incl   r1
        !            43: cmpl   r1, r12
        !            44: jlssu  L3                      /* till bend */
        !            45: clrl   r0
        !            46: ret                            /* strings equal: return(0) */
        !            47: 
        !            48: 
        !            49: L17:                           /* else */
        !            50: movl   16(fp), r2              /* compare according to lb */
        !            51: cmps3
        !            52: jneq   L20                     /* if not equal */
        !            53:                                /* return(*a - *b) */
        !            54: addl3  4(fp), 12(fp), r12      /* r12 = aend */
        !            55: 
        !            56: L30:
        !            57: cmpb   (r0), $32               /* if *a != space */
        !            58: jeql   L40
        !            59: cvtbl  (r0), r0
        !            60: movl   $32, r1                 /* return(*a - ' ') */
        !            61: subl2  r1, r0
        !            62: ret
        !            63: 
        !            64: L40:                           /* else loop */
        !            65: incl   r0
        !            66: cmpl   r0, r12
        !            67: jlssu  L30                     /* till bend */
        !            68: clrl   r0
        !            69: ret                            /* strings equal: return(0) */
        !            70: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.