Annotation of 3BSD/cmd/px/02rel.s, revision 1.1.1.1

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

unix.superglobalmegacorp.com

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