Annotation of 41BSD/cmd/px/03rel.s, revision 1.1.1.1

1.1       root        1: #
                      2: # Copyright (c) 1979 Regents of the University of California
                      3: #
                      4: # char sccsid[] = "@(#)03rel.s 4.1 10/10/80";
                      5: #
                      6: # RELATIONAL OPERATORS
                      7: #
                      8: _REL2:
                      9:        cvtbl   (r10)+,r0
                     10:        movw    (sp)+,r1
                     11:        cmpw    (sp)+,r1
                     12:        jmp     *reltab(r0)
                     13: _REL42:
                     14:        cvtbl   (r10)+,r0
                     15:        movl    (sp)+,r1
                     16:        cvtwl   (sp)+,r2
                     17:        cmpl    r2,r1
                     18:        jmp     *reltab(r0)
                     19: _REL24:
                     20:        cvtbl   (r10)+,r0
                     21:        cvtwl   (sp)+,r1
                     22:        cmpl    (sp)+,r1
                     23:        jmp     *reltab(r0)
                     24: _REL4:
                     25:        cvtbl   (r10)+,r0
                     26:        movl    (sp)+,r1
                     27:        cmpl    (sp)+,r1
                     28:        jmp     *reltab(r0)
                     29: _REL28:
                     30:        cvtbl   (r10)+,r0
                     31:        cvtwd   (sp)+,r1
                     32:        cmpd    (sp)+,r1
                     33:        jmp     *reltab(r0)
                     34: _REL48:
                     35:        cvtbl   (r10)+,r0
                     36:        cvtld   (sp)+,r1
                     37:        cmpd    (sp)+,r1
                     38:        jmp     *reltab(r0)
                     39: _REL82:
                     40:        cvtbl   (r10)+,r0
                     41:        movd    (sp)+,r1
                     42:        cvtwd   (sp)+,r3
                     43:        cmpd    r3,r1
                     44:        jmp     *reltab(r0)
                     45: _REL84:
                     46:        cvtbl   (r10)+,r0
                     47:        movd    (sp)+,r1
                     48:        cvtld   (sp)+,r3
                     49:        cmpd    r3,r1
                     50:        jmp     *reltab(r0)
                     51: _REL8:
                     52:        cvtbl   (r10)+,r0
                     53:        movd    (sp)+,r1
                     54:        cmpd    (sp)+,r1
                     55:        jmp     *reltab(r0)
                     56: _RELG:
                     57:        cvtbl   (r10)+,r5       #r5 has jump opcode
                     58:        movzwl  (r10)+,r1       #r1 has comparison length
                     59:        movl    r1,r4           #r4 has stack length
                     60:        blbc    r4,l0201
                     61:        incl    r4
                     62: l0201:
                     63:        addl3   sp,r4,r3        #r3 has addr of bottom operand
                     64:        addl2   r3,r4           #r4 points to cleared stack
                     65:        cmpc3   r1,(r3),(sp)    #do comparison
                     66:        movpsl  r2              #save condition codes
                     67:        movl    r4,sp           #update stack
                     68:        bicpsw  $15             #restore condition codes
                     69:        bispsw  r2
                     70:        jmp     *reltab(r5)
                     71: 
                     72:        .align  1
                     73: reltab:
                     74:        .long   releq
                     75:        .long   relne
                     76:        .long   rellt
                     77:        .long   relgt
                     78:        .long   relle
                     79:        .long   relge
                     80:        .long   ifeq
                     81:        .long   ifne
                     82:        .long   iflt
                     83:        .long   ifgt
                     84:        .long   ifle
                     85:        .long   ifge
                     86: 
                     87: releq:
                     88:        beql    True
                     89:        clrw    -(sp)
                     90:        jmp     (r8)
                     91: relne:
                     92:        bneq    True
                     93:        clrw    -(sp)
                     94:        jmp     (r8)
                     95: rellt:
                     96:        blss    True
                     97:        clrw    -(sp)
                     98:        jmp     (r8)
                     99: relgt:
                    100:        bgtr    True
                    101:        clrw    -(sp)
                    102:        jmp     (r8)
                    103: relle:
                    104:        bleq    True
                    105:        clrw    -(sp)
                    106:        jmp     (r8)
                    107: relge:
                    108:        bgeq    True
                    109:        clrw    -(sp)
                    110:        jmp     (r8)
                    111: True:
                    112:        movw    $1,-(sp)
                    113:        jmp     (r8)
                    114: ifeq:
                    115:        bneq    iftra
                    116:        addl2   $2,r10
                    117:        jmp     (r8)
                    118: ifne:
                    119:        beql    iftra
                    120:        addl2   $2,r10
                    121:        jmp     (r8)
                    122: iflt:
                    123:        bgeq    iftra
                    124:        addl2   $2,r10
                    125:        jmp     (r8)
                    126: ifgt:
                    127:        bleq    iftra
                    128:        addl2   $2,r10
                    129:        jmp     (r8)
                    130: ifle:
                    131:        bgtr    iftra
                    132:        addl2   $2,r10
                    133:        jmp     (r8)
                    134: ifge:
                    135:        blss    iftra
                    136:        addl2   $2,r10
                    137:        jmp     (r8)
                    138: iftra:
                    139:        cvtwl   (r10),r0
                    140:        addl2   r0,r10
                    141:        jmp     (r8)

unix.superglobalmegacorp.com

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