Annotation of 40BSD/cmd/px/03rel.s, revision 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.