Annotation of 43BSD/contrib/X/CLUlib/vax/x_vlist.asm, revision 1.1

1.1     ! root        1: ; Copyright    Barbara Liskov    1985
        !             2: 
        !             3: x_vlist = cluster is create, fetch, store, size, equal
        !             4: 
        !             5: rep = null
        !             6: 
        !             7: create = qproc (n: int) returns (cvt) signals (toobig)
        !             8:        mull    6,rr,n1
        !             9:        movzwl  n1,n0
        !            10:        ifeql   cmpl    n1,n0
        !            11:        then    addl    7,n0
        !            12:                bicb    3,n0
        !            13:                subl    n0,heaplo
        !            14:                iflss   cmpl    heaplo,freelo
        !            15:                then    jsb     memout
        !            16:                end
        !            17:                movl    heaplo,rr
        !            18:                movw    n1,(rr)
        !            19:                movb    %bvecb,3(rr)
        !            20:                return(rr)
        !            21:        end
        !            22:        signal  toobig
        !            23:        end create
        !            24: 
        !            25: store = qproc (list: cvt, i: int, x, y, flags: int) signals (bounds)
        !            26:        subl    1,i,n1
        !            27:        mull    6,n1
        !            28:        movl    list,n2
        !            29:        movzwl  (n2),n3
        !            30:        iflssu  cmpl    n1,n3
        !            31:        then    movab   4(n2)[n1],n3
        !            32:                movw    x,(n3)+
        !            33:                movw    y,(n3)+
        !            34:                movw    rr,(n3)
        !            35:                return
        !            36:        end
        !            37:        signal  bounds
        !            38:        end store
        !            39: 
        !            40: fetch = qproc (list: cvt, i: int) returns (int, int, int) signals (bounds)
        !            41:        subl    1,rr,n1
        !            42:        mull    6,n1
        !            43:        movl    list,n2
        !            44:        movzwl  (n2),n3
        !            45:        iflssu  cmpl    n1,n3
        !            46:        then    movab   4(n2)[n1],n3
        !            47:                cvtwl   (n3)+,-(sp)
        !            48:                cvtwl   (n3)+,-(sp)
        !            49:                movzwl  (n3),rr
        !            50:                return(*, *, *)
        !            51:        end
        !            52:        signal  bounds
        !            53:        end fetch
        !            54: 
        !            55: size = qproc (list: cvt) returns (int)
        !            56:        movzwl  (rr),rr
        !            57:        divl    6,rr
        !            58:        return(rr)
        !            59:        end size
        !            60: 
        !            61: equal = qproc (list1, list2: cvt) returns (bool)
        !            62:        ifeql   cmpl    list1,rr
        !            63:        then    return(true)
        !            64:        end
        !            65:        return(false)
        !            66:        end equal
        !            67: 
        !            68: end x_vlist

unix.superglobalmegacorp.com

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