|
|
1.1 ! root 1: # ! 2: # Copyright (c) 1979 Regents of the University of California ! 3: # ! 4: # char sccsid[] = "@(#)23case.s 4.1 10/10/80"; ! 5: # ! 6: # CASE OPERATORS ! 7: # ! 8: _CASE1OP: ! 9: cvtbl (r10)+,r0 ! 10: bneq l2401 ! 11: cvtwl (r10)+,r0 #r0 has length of case table ! 12: l2401: ! 13: movaw (r10)[r0],r2 #r2 has pointer to cases ! 14: cvtwl (sp)+,r3 #r3 has case element to find ! 15: locc r3,r0,(r2) #find case element ! 16: beql caserr #case not found ! 17: offset: ! 18: mnegl r0,r0 #calc new lc ! 19: cvtwl (r2)[r0],r1 ! 20: addl2 r1,r10 ! 21: jmp (r8) ! 22: _CASE2OP: ! 23: cvtbl (r10)+,r0 ! 24: bneq l2402 ! 25: cvtwl (r10)+,r0 #r0 has length of case table ! 26: l2402: ! 27: movaw (r10)[r0],r1 #r1 has pointer to cases ! 28: movl r1,r2 #save base pointer ! 29: movzwl (sp)+,r3 #r3 has case element to find ! 30: l2403: ! 31: cmpw r3,(r1)+ #search for case ! 32: beqlu offset ! 33: sobgtr r0,l2403 ! 34: brb caserr #not found ! 35: _CASE4OP: ! 36: cvtbl (r10)+,r0 ! 37: bneq l2404 ! 38: cvtwl (r10)+,r0 #r0 has length of case table ! 39: l2404: ! 40: movaw (r10)[r0],r1 #r1 has pointer to cases ! 41: movl r1,r2 #save base pointer ! 42: movl (sp)+,r3 #r3 has case element to find ! 43: l2405: ! 44: cmpl r3,(r1)+ #search for case ! 45: beqlu offset ! 46: sobgtr r0,l2405 ! 47: caserr: ! 48: movw $ECASE,_perrno ! 49: jbr error
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.