Annotation of cci/usr/src/usr.lib/libF77/s_cmp_s.s, revision 1.1.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.