Annotation of 43BSD/contrib/X/CLUlib/vax/x_vlist.asm, revision 1.1.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.