Annotation of 41BSD/lib/libpc/GOTO.s, revision 1.1

1.1     ! root        1: # Copyright (c) 1979 Regents of the University of California
        !             2: #
        !             3: # sccsid[] = "@(#)GOTO.s 1.1 10/29/80";
        !             4: #
        !             5:        .data
        !             6: jmplbl:
        !             7:        .long   0
        !             8: frame:
        !             9:        .long   0
        !            10:        .text
        !            11: 
        !            12:        .globl  _GOTO
        !            13:        .align  1
        !            14: _GOTO:
        !            15:        .word   0
        !            16:        movl    *4(ap),frame    #save parameters
        !            17:        movl    PC(fp),jmplbl
        !            18:        moval   unwind,PC(fp)   #begin unwinding
        !            19:        ret
        !            20: unwind:
        !            21:        tstl    (fp)            #check for exception vector
        !            22:        bneq    L1
        !            23:        cmpl    ap,__disply+8   #check for past global procedure
        !            24:        bgequ   egoto
        !            25:        moval   unwind,PC(fp)   #blow away this stack frame
        !            26:        ret
        !            27: L1:
        !            28:        cmpl    ap,frame        #check for requested frame
        !            29:        bgtru   egoto           #lost it somewhere
        !            30:        blssu   L2              #not there yet
        !            31:        jmp     *jmplbl         #proceed in this section
        !            32: L2:
        !            33:        pushl   -4(fp)          #level of this frame
        !            34:        calls   $1,*(fp)        #call the exception handler
        !            35:        movq    -12(fp),*-4(fp) #restore the display
        !            36:        moval   unwind,PC(fp)   #blow away this stack frame
        !            37:        ret
        !            38: egoto:
        !            39:        pushl   $EGOTO
        !            40:        calls   $1,_ERROR
        !            41:        ret

unix.superglobalmegacorp.com

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